aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/0x.js/CHANGELOG.json21
-rw-r--r--packages/0x.js/CHANGELOG.md12
-rw-r--r--packages/0x.js/package.json38
-rw-r--r--packages/abi-gen-templates/CHANGELOG.json3
-rw-r--r--packages/abi-gen-templates/CHANGELOG.md4
-rw-r--r--packages/abi-gen-templates/package.json2
-rw-r--r--packages/abi-gen-wrappers/CHANGELOG.json12
-rw-r--r--packages/abi-gen-wrappers/CHANGELOG.md8
-rw-r--r--packages/abi-gen-wrappers/package.json20
-rw-r--r--packages/abi-gen/CHANGELOG.json12
-rw-r--r--packages/abi-gen/CHANGELOG.md8
-rw-r--r--packages/abi-gen/package.json20
-rw-r--r--packages/assert/CHANGELOG.json12
-rw-r--r--packages/assert/CHANGELOG.md8
-rw-r--r--packages/assert/package.json12
-rw-r--r--packages/asset-buyer/CHANGELOG.json21
-rw-r--r--packages/asset-buyer/CHANGELOG.md16
-rw-r--r--packages/asset-buyer/package.json30
-rw-r--r--packages/base-contract/CHANGELOG.json12
-rw-r--r--packages/base-contract/CHANGELOG.md8
-rw-r--r--packages/base-contract/package.json14
-rw-r--r--packages/connect/CHANGELOG.json21
-rw-r--r--packages/connect/CHANGELOG.md12
-rw-r--r--packages/connect/package.json22
-rw-r--r--packages/contract-addresses/CHANGELOG.json9
-rw-r--r--packages/contract-addresses/CHANGELOG.md4
-rw-r--r--packages/contract-addresses/package.json4
-rw-r--r--packages/contract-wrappers/CHANGELOG.json22
-rw-r--r--packages/contract-wrappers/CHANGELOG.md14
-rw-r--r--packages/contract-wrappers/package.json40
-rw-r--r--packages/contract-wrappers/src/utils/transaction_encoder.ts19
-rw-r--r--packages/contract-wrappers/test/exchange_wrapper_test.ts19
-rw-r--r--packages/contract-wrappers/test/transaction_encoder_test.ts4
-rw-r--r--packages/contracts-gen/package.json2
-rw-r--r--packages/dev-tools-pages/package.json6
-rw-r--r--packages/dev-utils/CHANGELOG.json12
-rw-r--r--packages/dev-utils/CHANGELOG.md8
-rw-r--r--packages/dev-utils/package.json18
-rw-r--r--packages/ethereum-types/CHANGELOG.json3
-rw-r--r--packages/ethereum-types/CHANGELOG.md4
-rw-r--r--packages/ethereum-types/package.json4
-rw-r--r--packages/fill-scenarios/CHANGELOG.json21
-rw-r--r--packages/fill-scenarios/CHANGELOG.md12
-rw-r--r--packages/fill-scenarios/package.json22
-rw-r--r--packages/instant/package.json42
-rw-r--r--packages/json-schemas/CHANGELOG.json16
-rw-r--r--packages/json-schemas/CHANGELOG.md9
-rw-r--r--packages/json-schemas/package.json8
-rw-r--r--packages/json-schemas/schemas/zero_ex_transaction_schema.json3
-rw-r--r--packages/metacoin/package.json36
-rw-r--r--packages/migrations/CHANGELOG.json21
-rw-r--r--packages/migrations/CHANGELOG.md15
-rw-r--r--packages/migrations/package.json32
-rw-r--r--packages/monorepo-scripts/package.json12
-rw-r--r--packages/monorepo-scripts/src/deps_versions.ts98
-rw-r--r--packages/monorepo-scripts/src/publish.ts2
-rw-r--r--packages/order-utils/CHANGELOG.json32
-rw-r--r--packages/order-utils/CHANGELOG.md15
-rw-r--r--packages/order-utils/package.json27
-rw-r--r--packages/order-utils/src/constants.ts10
-rw-r--r--packages/order-utils/src/eip712_utils.ts49
-rw-r--r--packages/order-utils/src/index.ts3
-rw-r--r--packages/order-utils/src/order_hash.ts17
-rw-r--r--packages/order-utils/src/signature_utils.ts10
-rw-r--r--packages/order-utils/src/transaction_hash.ts46
-rw-r--r--packages/order-utils/test/eip712_utils_test.ts48
-rw-r--r--packages/order-utils/test/order_hash_test.ts5
-rw-r--r--packages/order-utils/test/signature_utils_test.ts11
-rw-r--r--packages/order-utils/test/transaction_hash_test.ts56
-rw-r--r--packages/order-watcher/CHANGELOG.json21
-rw-r--r--packages/order-watcher/CHANGELOG.md12
-rw-r--r--packages/order-watcher/package.json38
-rw-r--r--packages/pipeline/README.md4
-rw-r--r--packages/pipeline/package.json30
-rw-r--r--packages/react-docs/CHANGELOG.json21
-rw-r--r--packages/react-docs/CHANGELOG.md12
-rw-r--r--packages/react-docs/package.json18
-rw-r--r--packages/react-shared/CHANGELOG.json21
-rw-r--r--packages/react-shared/CHANGELOG.md12
-rw-r--r--packages/react-shared/package.json20
-rw-r--r--packages/react-shared/src/components/markdown_paragraph_block.tsx6
-rw-r--r--packages/sol-compiler/CHANGELOG.json12
-rw-r--r--packages/sol-compiler/CHANGELOG.md8
-rw-r--r--packages/sol-compiler/package.json26
-rw-r--r--packages/sol-coverage/CHANGELOG.json12
-rw-r--r--packages/sol-coverage/CHANGELOG.md8
-rw-r--r--packages/sol-coverage/package.json14
-rw-r--r--packages/sol-doc/CHANGELOG.json12
-rw-r--r--packages/sol-doc/CHANGELOG.md8
-rw-r--r--packages/sol-doc/package.json20
-rw-r--r--packages/sol-profiler/CHANGELOG.json12
-rw-r--r--packages/sol-profiler/CHANGELOG.md12
-rw-r--r--packages/sol-profiler/package.json14
-rw-r--r--packages/sol-resolver/CHANGELOG.json12
-rw-r--r--packages/sol-resolver/CHANGELOG.md8
-rw-r--r--packages/sol-resolver/package.json10
-rw-r--r--packages/sol-trace/CHANGELOG.json12
-rw-r--r--packages/sol-trace/CHANGELOG.md12
-rw-r--r--packages/sol-trace/package.json14
-rw-r--r--packages/sol-tracing-utils/CHANGELOG.json20
-rw-r--r--packages/sol-tracing-utils/CHANGELOG.md19
-rw-r--r--packages/sol-tracing-utils/package.json27
-rw-r--r--packages/sol-tracing-utils/src/trace_collection_subprovider.ts17
-rw-r--r--packages/sra-spec/CHANGELOG.json12
-rw-r--r--packages/sra-spec/CHANGELOG.md8
-rw-r--r--packages/sra-spec/package.json12
-rw-r--r--packages/subproviders/CHANGELOG.json12
-rw-r--r--packages/subproviders/CHANGELOG.md9
-rw-r--r--packages/subproviders/package.json18
-rw-r--r--packages/testnet-faucets/package.json20
-rw-r--r--packages/tslint-config/CHANGELOG.json3
-rw-r--r--packages/tslint-config/CHANGELOG.md4
-rw-r--r--packages/tslint-config/package.json4
-rw-r--r--packages/types/CHANGELOG.json20
-rw-r--r--packages/types/CHANGELOG.md10
-rw-r--r--packages/types/package.json6
-rw-r--r--packages/types/src/index.ts33
-rw-r--r--packages/typescript-typings/CHANGELOG.json3
-rw-r--r--packages/typescript-typings/CHANGELOG.md4
-rw-r--r--packages/typescript-typings/package.json4
-rw-r--r--packages/utils/CHANGELOG.json20
-rw-r--r--packages/utils/CHANGELOG.md12
-rw-r--r--packages/utils/package.json16
-rw-r--r--packages/utils/src/abi_encoder/abstract_data_types/data_type.ts4
-rw-r--r--packages/utils/src/abi_encoder/abstract_data_types/types/set.ts21
-rw-r--r--packages/utils/src/abi_encoder/calldata/raw_calldata.ts5
-rw-r--r--packages/utils/src/abi_encoder/evm_data_types/address.ts5
-rw-r--r--packages/utils/src/abi_encoder/evm_data_types/bool.ts8
-rw-r--r--packages/utils/src/abi_encoder/evm_data_types/dynamic_bytes.ts5
-rw-r--r--packages/utils/src/abi_encoder/evm_data_types/int.ts12
-rw-r--r--packages/utils/src/abi_encoder/evm_data_types/pointer.ts5
-rw-r--r--packages/utils/src/abi_encoder/evm_data_types/static_bytes.ts7
-rw-r--r--packages/utils/src/abi_encoder/evm_data_types/string.ts5
-rw-r--r--packages/utils/src/abi_encoder/evm_data_types/uint.ts12
-rw-r--r--packages/utils/src/abi_encoder/utils/constants.ts6
-rw-r--r--packages/utils/test/abi_encoder/abi_samples/return_value_abis.ts25
-rw-r--r--packages/utils/test/abi_encoder/evm_data_types_test.ts167
-rw-r--r--packages/utils/test/abi_encoder/return_values_test.ts251
-rw-r--r--packages/web3-wrapper/CHANGELOG.json12
-rw-r--r--packages/web3-wrapper/CHANGELOG.md9
-rw-r--r--packages/web3-wrapper/package.json16
-rw-r--r--packages/website/less/all.less7
-rw-r--r--packages/website/package.json30
-rw-r--r--packages/website/ts/components/mobileNav.tsx3
-rw-r--r--packages/website/ts/utils/constants.ts2
145 files changed, 2000 insertions, 589 deletions
diff --git a/packages/0x.js/CHANGELOG.json b/packages/0x.js/CHANGELOG.json
index 20778f8bb..8f13049e9 100644
--- a/packages/0x.js/CHANGELOG.json
+++ b/packages/0x.js/CHANGELOG.json
@@ -1,12 +1,31 @@
[
{
+ "timestamp": 1549504360,
+ "version": "4.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1549452781,
+ "version": "4.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "4.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547747677,
diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md
index b0279f097..2ea296ea5 100644
--- a/packages/0x.js/CHANGELOG.md
+++ b/packages/0x.js/CHANGELOG.md
@@ -5,6 +5,18 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v4.0.2 - _February 7, 2019_
+
+ * Dependencies updated
+
+## v4.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v4.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v3.0.3 - _January 17, 2019_
* Dependencies updated
diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json
index 64054d288..0dce40010 100644
--- a/packages/0x.js/package.json
+++ b/packages/0x.js/package.json
@@ -1,6 +1,6 @@
{
"name": "0x.js",
- "version": "3.0.3",
+ "version": "4.0.2",
"engines": {
"node": ">=6.12"
},
@@ -24,7 +24,7 @@
"test:coverage": "nyc npm run test --all && yarn coverage:report:lcov",
"coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info",
"clean": "shx rm -rf _bundles lib test_temp src/generated_contract_wrappers generated_docs",
- "build:umd:prod": "NODE_ENV=production webpack",
+ "build:umd:prod": "NODE_ENV=production node --max_old_space_size=8192 ../../node_modules/.bin/webpack --mode production",
"build:commonjs": "tsc -b",
"docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES"
},
@@ -42,11 +42,11 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@0x/abi-gen-wrappers": "^2.2.0",
- "@0x/contract-addresses": "^2.2.0",
- "@0x/dev-utils": "^1.0.24",
- "@0x/migrations": "^2.4.0",
- "@0x/tslint-config": "^2.0.2",
+ "@0x/abi-gen-wrappers": "^3.0.1",
+ "@0x/contract-addresses": "^2.2.1",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/migrations": "^3.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
"@types/node": "*",
@@ -72,20 +72,20 @@
"webpack": "^4.20.2"
},
"dependencies": {
- "@0x/assert": "^1.0.23",
- "@0x/base-contract": "^3.0.13",
- "@0x/contract-wrappers": "^5.0.1",
- "@0x/order-utils": "^3.1.2",
- "@0x/order-watcher": "^2.4.3",
- "@0x/subproviders": "^2.1.11",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/assert": "^2.0.1",
+ "@0x/base-contract": "^4.0.1",
+ "@0x/contract-wrappers": "^7.0.1",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/order-watcher": "^3.0.2",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"@types/web3-provider-engine": "^14.0.0",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"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-templates/CHANGELOG.json b/packages/abi-gen-templates/CHANGELOG.json
index 7d444d0ca..94afa8db1 100644
--- a/packages/abi-gen-templates/CHANGELOG.json
+++ b/packages/abi-gen-templates/CHANGELOG.json
@@ -6,7 +6,8 @@
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/abi-gen-templates/CHANGELOG.md b/packages/abi-gen-templates/CHANGELOG.md
index 5dd6d03e0..cdaee6264 100644
--- a/packages/abi-gen-templates/CHANGELOG.md
+++ b/packages/abi-gen-templates/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.2 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/abi-gen-templates/package.json b/packages/abi-gen-templates/package.json
index af66aeba0..dfa9248c7 100644
--- a/packages/abi-gen-templates/package.json
+++ b/packages/abi-gen-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/abi-gen-templates",
- "version": "1.0.2",
+ "version": "2.0.0",
"engines": {
"node": ">=6.12"
},
diff --git a/packages/abi-gen-wrappers/CHANGELOG.json b/packages/abi-gen-wrappers/CHANGELOG.json
index c604302b5..f714100ce 100644
--- a/packages/abi-gen-wrappers/CHANGELOG.json
+++ b/packages/abi-gen-wrappers/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "3.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "3.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"version": "2.2.0",
diff --git a/packages/abi-gen-wrappers/CHANGELOG.md b/packages/abi-gen-wrappers/CHANGELOG.md
index 294f39439..75ac81d45 100644
--- a/packages/abi-gen-wrappers/CHANGELOG.md
+++ b/packages/abi-gen-wrappers/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v3.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v2.2.0 - _January 15, 2019_
* Added `MultiAssetProxy` (#1503)
diff --git a/packages/abi-gen-wrappers/package.json b/packages/abi-gen-wrappers/package.json
index 842ac024a..ce6183169 100644
--- a/packages/abi-gen-wrappers/package.json
+++ b/packages/abi-gen-wrappers/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/abi-gen-wrappers",
- "version": "2.2.0",
+ "version": "3.0.1",
"engines": {
"node": ">=6.12"
},
@@ -30,19 +30,19 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen-wrappers/README.md",
"devDependencies": {
- "@0x/abi-gen": "^1.0.22",
- "@0x/abi-gen-templates": "^1.0.2",
- "@0x/tslint-config": "^2.0.2",
- "@0x/types": "^1.5.2",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
- "ethereum-types": "^1.1.6",
+ "@0x/abi-gen": "^2.0.1",
+ "@0x/abi-gen-templates": "^2.0.0",
+ "@0x/tslint-config": "^3.0.0",
+ "@0x/types": "^2.0.1",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
+ "ethereum-types": "^2.0.0",
"ethers": "~4.0.4",
- "lodash": "^4.17.5",
+ "lodash": "^4.17.11",
"shx": "^0.2.2"
},
"dependencies": {
- "@0x/base-contract": "^3.0.13"
+ "@0x/base-contract": "^4.0.1"
},
"publishConfig": {
"access": "public"
diff --git a/packages/abi-gen/CHANGELOG.json b/packages/abi-gen/CHANGELOG.json
index 173617b65..3e6eb9038 100644
--- a/packages/abi-gen/CHANGELOG.json
+++ b/packages/abi-gen/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/abi-gen/CHANGELOG.md b/packages/abi-gen/CHANGELOG.md
index af74218b8..17085c515 100644
--- a/packages/abi-gen/CHANGELOG.md
+++ b/packages/abi-gen/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.22 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/abi-gen/package.json b/packages/abi-gen/package.json
index 7f968893c..3856f29b9 100644
--- a/packages/abi-gen/package.json
+++ b/packages/abi-gen/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/abi-gen",
- "version": "1.0.22",
+ "version": "2.0.1",
"engines": {
"node": ">=6.12"
},
@@ -31,13 +31,13 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen/README.md",
"dependencies": {
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
"chalk": "^2.3.0",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"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",
@@ -45,18 +45,18 @@
"yargs": "^10.0.3"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@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/CHANGELOG.json b/packages/assert/CHANGELOG.json
index 278b7dfa1..8ca292485 100644
--- a/packages/assert/CHANGELOG.json
+++ b/packages/assert/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/assert/CHANGELOG.md b/packages/assert/CHANGELOG.md
index 5a4af165a..0050d0105 100644
--- a/packages/assert/CHANGELOG.md
+++ b/packages/assert/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.23 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/assert/package.json b/packages/assert/package.json
index 38481d6f0..6b87d67f2 100644
--- a/packages/assert/package.json
+++ b/packages/assert/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/assert",
- "version": "1.0.23",
+ "version": "2.0.1",
"engines": {
"node": ">=6.12"
},
@@ -29,7 +29,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/assert/README.md",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
"@types/valid-url": "^1.0.2",
@@ -44,10 +44,10 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/json-schemas": "^2.1.7",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "lodash": "^4.17.5",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "lodash": "^4.17.11",
"valid-url": "^1.0.9"
},
"publishConfig": {
diff --git a/packages/asset-buyer/CHANGELOG.json b/packages/asset-buyer/CHANGELOG.json
index 2de603de0..2b567bbb2 100644
--- a/packages/asset-buyer/CHANGELOG.json
+++ b/packages/asset-buyer/CHANGELOG.json
@@ -1,12 +1,31 @@
[
{
+ "timestamp": 1549504360,
+ "version": "5.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1549452781,
+ "version": "5.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "5.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"version": "4.1.0",
diff --git a/packages/asset-buyer/CHANGELOG.md b/packages/asset-buyer/CHANGELOG.md
index f2a3d2236..d21d89b8e 100644
--- a/packages/asset-buyer/CHANGELOG.md
+++ b/packages/asset-buyer/CHANGELOG.md
@@ -5,6 +5,22 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v5.0.2 - _February 7, 2019_
+
+ * Dependencies updated
+
+## v5.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v5.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
+## v4.1.0 - _Invalid date_
+
+ * Adds new public method getLiquidityForAssetDataAsync, and exposes getOrdersAndFillableAmountsAsync as public method (#1512)
+
## v4.0.2 - _January 17, 2019_
* Dependencies updated
diff --git a/packages/asset-buyer/package.json b/packages/asset-buyer/package.json
index 0f79ac06a..ccaaf5d87 100644
--- a/packages/asset-buyer/package.json
+++ b/packages/asset-buyer/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/asset-buyer",
- "version": "4.0.2",
+ "version": "5.0.2",
"engines": {
"node": ">=6.12"
},
@@ -36,22 +36,22 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/asset-buyer/README.md",
"dependencies": {
- "@0x/assert": "^1.0.23",
- "@0x/connect": "^3.0.13",
- "@0x/contract-wrappers": "^5.0.1",
- "@0x/json-schemas": "^2.1.7",
- "@0x/order-utils": "^3.1.2",
- "@0x/subproviders": "^2.1.11",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
- "ethereum-types": "^1.1.6",
- "lodash": "^4.17.5"
+ "@0x/assert": "^2.0.1",
+ "@0x/connect": "^4.0.2",
+ "@0x/contract-wrappers": "^7.0.1",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
+ "ethereum-types": "^2.0.0",
+ "lodash": "^4.17.11"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
- "@types/lodash": "^4.14.116",
+ "@0x/tslint-config": "^3.0.0",
+ "@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
"@types/node": "*",
"chai": "^4.0.1",
diff --git a/packages/base-contract/CHANGELOG.json b/packages/base-contract/CHANGELOG.json
index 63b1fe8f7..d3333dff6 100644
--- a/packages/base-contract/CHANGELOG.json
+++ b/packages/base-contract/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "4.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "4.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/base-contract/CHANGELOG.md b/packages/base-contract/CHANGELOG.md
index 975a56fd4..ae705dab7 100644
--- a/packages/base-contract/CHANGELOG.md
+++ b/packages/base-contract/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v4.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v4.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v3.0.13 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/base-contract/package.json b/packages/base-contract/package.json
index db09b16a1..ac7b3fb87 100644
--- a/packages/base-contract/package.json
+++ b/packages/base-contract/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/base-contract",
- "version": "3.0.13",
+ "version": "4.0.1",
"engines": {
"node": ">=6.12"
},
@@ -29,7 +29,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/base-contract/README.md",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/lodash": "4.14.104",
"chai": "^4.0.1",
"make-promises-safe": "^1.1.0",
@@ -40,12 +40,12 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
- "ethereum-types": "^1.1.6",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
+ "ethereum-types": "^2.0.0",
"ethers": "~4.0.4",
- "lodash": "^4.17.5"
+ "lodash": "^4.17.11"
},
"publishConfig": {
"access": "public"
diff --git a/packages/connect/CHANGELOG.json b/packages/connect/CHANGELOG.json
index c2f16d96a..feeb057d5 100644
--- a/packages/connect/CHANGELOG.json
+++ b/packages/connect/CHANGELOG.json
@@ -1,12 +1,31 @@
[
{
+ "timestamp": 1549504360,
+ "version": "4.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1549452781,
+ "version": "4.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "4.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/connect/CHANGELOG.md b/packages/connect/CHANGELOG.md
index 7556aae72..af1b088c9 100644
--- a/packages/connect/CHANGELOG.md
+++ b/packages/connect/CHANGELOG.md
@@ -5,6 +5,18 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v4.0.2 - _February 7, 2019_
+
+ * Dependencies updated
+
+## v4.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v4.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v3.0.13 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/connect/package.json b/packages/connect/package.json
index 15a4c12f1..10c694ca9 100644
--- a/packages/connect/package.json
+++ b/packages/connect/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/connect",
- "version": "3.0.13",
+ "version": "4.0.2",
"engines": {
"node": ">=6.12"
},
@@ -44,24 +44,24 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/connect/README.md",
"dependencies": {
- "@0x/assert": "^1.0.23",
- "@0x/json-schemas": "^2.1.7",
- "@0x/order-utils": "^3.1.2",
- "@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",
+ "@0x/assert": "^2.0.1",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "lodash": "^4.17.11",
+ "query-string": "^6.0.0",
"sinon": "^4.0.0",
"uuid": "^3.3.2",
"websocket": "^1.0.25"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@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/CHANGELOG.json b/packages/contract-addresses/CHANGELOG.json
index 8800f2f73..c420df69d 100644
--- a/packages/contract-addresses/CHANGELOG.json
+++ b/packages/contract-addresses/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1549373905,
+ "version": "2.2.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.2.0",
"changes": [
{
diff --git a/packages/contract-addresses/CHANGELOG.md b/packages/contract-addresses/CHANGELOG.md
index 1f3d187a4..deab2b398 100644
--- a/packages/contract-addresses/CHANGELOG.md
+++ b/packages/contract-addresses/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.2.1 - _February 5, 2019_
+
+ * Dependencies updated
+
## v2.2.0 - _January 15, 2019_
* Added migration for `MultiAssetProxy` contract (#1503)
diff --git a/packages/contract-addresses/package.json b/packages/contract-addresses/package.json
index 260322081..84cc052c9 100644
--- a/packages/contract-addresses/package.json
+++ b/packages/contract-addresses/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/contract-addresses",
- "version": "2.2.0",
+ "version": "2.2.1",
"engines": {
"node": ">=6.12"
},
@@ -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/CHANGELOG.json b/packages/contract-wrappers/CHANGELOG.json
index 9cea720c8..803863da3 100644
--- a/packages/contract-wrappers/CHANGELOG.json
+++ b/packages/contract-wrappers/CHANGELOG.json
@@ -1,12 +1,30 @@
[
{
- "version": "6.0.1",
+ "timestamp": 1549504360,
+ "version": "7.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "version": "7.0.0",
"changes": [
{
"note": "Fix OrderValidatorWrapper constructor to use the correct address",
"pr": 1568
+ },
+ {
+ "note": "Use new `ZeroExTransaction` interface",
+ "pr": 1576
+ },
+ {
+ "note": "Rename `getTransactionHex` to `getTransactionHashHex`",
+ "pr": 1576
}
- ]
+ ],
+ "timestamp": 1549452781
},
{
"version": "6.0.0",
diff --git a/packages/contract-wrappers/CHANGELOG.md b/packages/contract-wrappers/CHANGELOG.md
index 28cbf2ec6..fee13b218 100644
--- a/packages/contract-wrappers/CHANGELOG.md
+++ b/packages/contract-wrappers/CHANGELOG.md
@@ -5,6 +5,20 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v7.0.1 - _February 7, 2019_
+
+ * Dependencies updated
+
+## v7.0.0 - _February 6, 2019_
+
+ * Fix OrderValidatorWrapper constructor to use the correct address (#1568)
+ * Use new `ZeroExTransaction` interface (#1576)
+ * Rename `getTransactionHex` to `getTransactionHashHex` (#1576)
+
+## v6.0.0 - _Invalid date_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v5.0.1 - _January 17, 2019_
* Dependencies updated
diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json
index cc7dc1a3e..9fcf2a62d 100644
--- a/packages/contract-wrappers/package.json
+++ b/packages/contract-wrappers/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/contract-wrappers",
- "version": "5.0.1",
+ "version": "7.0.1",
"description": "Smart TS wrappers for 0x smart contracts",
"keywords": [
"0xproject",
@@ -37,15 +37,15 @@
"node": ">=6.0.0"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.24",
- "@0x/migrations": "^2.4.0",
- "@0x/subproviders": "^2.1.11",
- "@0x/tslint-config": "^2.0.2",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/migrations": "^3.0.2",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/tslint-config": "^3.0.0",
"@types/lodash": "4.14.104",
"@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",
@@ -65,26 +65,26 @@
"web3-provider-engine": "14.0.6"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^2.2.0",
- "@0x/assert": "^1.0.23",
- "@0x/contract-addresses": "^2.2.0",
+ "@0x/abi-gen-wrappers": "^3.0.1",
+ "@0x/assert": "^2.0.1",
+ "@0x/contract-addresses": "^2.2.1",
"@0x/contract-artifacts": "^1.3.0",
- "@0x/contracts-test-utils": "^2.0.1",
- "@0x/fill-scenarios": "^1.1.2",
- "@0x/json-schemas": "^2.1.7",
- "@0x/order-utils": "^3.1.2",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
- "ethereum-types": "^1.1.6",
+ "@0x/contracts-test-utils": "^3.0.2",
+ "@0x/fill-scenarios": "^2.0.2",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
+ "ethereum-types": "^2.0.0",
"ethereumjs-abi": "0.6.5",
"ethereumjs-blockstream": "6.0.0",
"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/contract-wrappers/src/utils/transaction_encoder.ts b/packages/contract-wrappers/src/utils/transaction_encoder.ts
index 0cf08a8fe..307487a9b 100644
--- a/packages/contract-wrappers/src/utils/transaction_encoder.ts
+++ b/packages/contract-wrappers/src/utils/transaction_encoder.ts
@@ -1,9 +1,9 @@
import { ExchangeContract } from '@0x/abi-gen-wrappers';
import { schemas } from '@0x/json-schemas';
-import { eip712Utils } from '@0x/order-utils';
+import { transactionHashUtils } from '@0x/order-utils';
import { Order, SignedOrder } from '@0x/types';
-import { BigNumber, signTypedDataUtils } from '@0x/utils';
+import { BigNumber } from '@0x/utils';
import _ = require('lodash');
import { assert } from './assert';
@@ -19,23 +19,22 @@ export class TransactionEncoder {
this._exchangeInstance = exchangeInstance;
}
/**
- * Encodes the transaction data for use with the Exchange contract.
+ * Hashes the transaction data for use with the Exchange contract.
* @param data The ABI Encoded 0x Exchange method. I.e fillOrder
* @param salt A random value to provide uniqueness and prevent replay attacks.
* @param signerAddress The address which will sign this transaction.
- * @return An unsigned hex encoded transaction for use in 0x Exchange executeTransaction.
+ * @return The hash of the 0x transaction.
*/
- public getTransactionHex(data: string, salt: BigNumber, signerAddress: string): string {
+ public getTransactionHashHex(data: string, salt: BigNumber, signerAddress: string): string {
const exchangeAddress = this._getExchangeContract().address;
- const executeTransactionData = {
+ const transaction = {
+ verifyingContractAddress: exchangeAddress,
salt,
signerAddress,
data,
};
- const typedData = eip712Utils.createZeroExTransactionTypedData(executeTransactionData, exchangeAddress);
- const eip712MessageBuffer = signTypedDataUtils.generateTypedDataHash(typedData);
- const messageHex = `0x${eip712MessageBuffer.toString('hex')}`;
- return messageHex;
+ const hashHex = transactionHashUtils.getTransactionHashHex(transaction);
+ return hashHex;
}
/**
* Encodes a fillOrder transaction.
diff --git a/packages/contract-wrappers/test/exchange_wrapper_test.ts b/packages/contract-wrappers/test/exchange_wrapper_test.ts
index a1d60dc6e..acd30495b 100644
--- a/packages/contract-wrappers/test/exchange_wrapper_test.ts
+++ b/packages/contract-wrappers/test/exchange_wrapper_test.ts
@@ -1,6 +1,6 @@
import { BlockchainLifecycle, callbackErrorReporter } from '@0x/dev-utils';
import { FillScenarios } from '@0x/fill-scenarios';
-import { assetDataUtils, orderHashUtils } from '@0x/order-utils';
+import { assetDataUtils, orderHashUtils, signatureUtils } from '@0x/order-utils';
import { DoneCallback, RevertReason, SignedOrder } from '@0x/types';
import { BigNumber } from '@0x/utils';
import * as chai from 'chai';
@@ -368,6 +368,23 @@ describe('ExchangeWrapper', () => {
await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
isPreSigned = await contractWrappers.exchange.isPreSignedAsync(hash, signerAddress);
expect(isPreSigned).to.be.true();
+
+ const preSignedSignature = '0x06';
+ const isValidSignature = await contractWrappers.exchange.isValidSignatureAsync(
+ hash,
+ signerAddress,
+ preSignedSignature,
+ );
+ expect(isValidSignature).to.be.true();
+
+ // Test our TS implementation of signature validation
+ const isValidSignatureInTs = await signatureUtils.isValidSignatureAsync(
+ provider,
+ hash,
+ preSignedSignature,
+ signerAddress,
+ );
+ expect(isValidSignatureInTs).to.be.true();
});
});
describe('#getVersionAsync', () => {
diff --git a/packages/contract-wrappers/test/transaction_encoder_test.ts b/packages/contract-wrappers/test/transaction_encoder_test.ts
index ef9eb2cf3..a996b9f08 100644
--- a/packages/contract-wrappers/test/transaction_encoder_test.ts
+++ b/packages/contract-wrappers/test/transaction_encoder_test.ts
@@ -83,8 +83,8 @@ describe('TransactionEncoder', () => {
signerAddress: string = takerAddress,
): Promise<void> => {
const salt = generatePseudoRandomSalt();
- const encodedTransaction = encoder.getTransactionHex(data, salt, signerAddress);
- const signature = await signatureUtils.ecSignHashAsync(provider, encodedTransaction, signerAddress);
+ const transactionHash = encoder.getTransactionHashHex(data, salt, signerAddress);
+ const signature = await signatureUtils.ecSignHashAsync(provider, transactionHash, signerAddress);
txHash = await contractWrappers.exchange.executeTransactionAsync(
salt,
signerAddress,
diff --git a/packages/contracts-gen/package.json b/packages/contracts-gen/package.json
index 8526feabc..9f9f14c4a 100644
--- a/packages/contracts-gen/package.json
+++ b/packages/contracts-gen/package.json
@@ -26,7 +26,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/contracts-gen/README.md",
"dependencies": {
- "@0x/types": "^1.5.2",
+ "@0x/types": "^2.0.1",
"@0x/utils": "^3.0.1",
"@0x/typescript-typings": "^3.0.8",
"ethereum-types": "^1.1.6",
diff --git a/packages/dev-tools-pages/package.json b/packages/dev-tools-pages/package.json
index feab72856..7006e6ca9 100644
--- a/packages/dev-tools-pages/package.json
+++ b/packages/dev-tools-pages/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/dev-tools-pages",
- "version": "0.0.14",
+ "version": "0.0.17",
"engines": {
"node": ">=6.12"
},
@@ -26,7 +26,7 @@
},
"license": "Apache-2.0",
"dependencies": {
- "@0x/react-shared": "^1.1.2",
+ "@0x/react-shared": "^2.0.2",
"basscss": "^8.0.3",
"bowser": "^1.9.3",
"highlight.js": "^9.13.1",
@@ -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/CHANGELOG.json b/packages/dev-utils/CHANGELOG.json
index d05e41d2d..1f0ec9b93 100644
--- a/packages/dev-utils/CHANGELOG.json
+++ b/packages/dev-utils/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md
index 958fded86..652fc6e96 100644
--- a/packages/dev-utils/CHANGELOG.md
+++ b/packages/dev-utils/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.24 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json
index 4ab1d6439..183e20fc1 100644
--- a/packages/dev-utils/package.json
+++ b/packages/dev-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/dev-utils",
- "version": "1.0.24",
+ "version": "2.0.1",
"engines": {
"node": ">=6.12"
},
@@ -29,7 +29,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/dev-utils/README.md",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
"make-promises-safe": "^1.1.0",
@@ -41,15 +41,15 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/subproviders": "^2.1.11",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"@types/web3-provider-engine": "^14.0.0",
"chai": "^4.0.1",
- "ethereum-types": "^1.1.6",
- "lodash": "^4.17.5"
+ "ethereum-types": "^2.0.0",
+ "lodash": "^4.17.11"
},
"publishConfig": {
"access": "public"
diff --git a/packages/ethereum-types/CHANGELOG.json b/packages/ethereum-types/CHANGELOG.json
index c106d43a9..4a75b4c9a 100644
--- a/packages/ethereum-types/CHANGELOG.json
+++ b/packages/ethereum-types/CHANGELOG.json
@@ -6,7 +6,8 @@
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/ethereum-types/CHANGELOG.md b/packages/ethereum-types/CHANGELOG.md
index c1857495d..45a82478e 100644
--- a/packages/ethereum-types/CHANGELOG.md
+++ b/packages/ethereum-types/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.1.6 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/ethereum-types/package.json b/packages/ethereum-types/package.json
index bd3748058..5f3ea2189 100644
--- a/packages/ethereum-types/package.json
+++ b/packages/ethereum-types/package.json
@@ -1,6 +1,6 @@
{
"name": "ethereum-types",
- "version": "1.1.6",
+ "version": "2.0.0",
"engines": {
"node": ">=6.12"
},
@@ -29,7 +29,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/ethereum-types/README.md",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"make-promises-safe": "^1.1.0",
"shx": "^0.2.2",
"tslint": "5.11.0",
diff --git a/packages/fill-scenarios/CHANGELOG.json b/packages/fill-scenarios/CHANGELOG.json
index beffdd097..faa702fcf 100644
--- a/packages/fill-scenarios/CHANGELOG.json
+++ b/packages/fill-scenarios/CHANGELOG.json
@@ -1,12 +1,31 @@
[
{
+ "timestamp": 1549504360,
+ "version": "2.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/fill-scenarios/CHANGELOG.md b/packages/fill-scenarios/CHANGELOG.md
index 7df8b5ab3..66966d3ec 100644
--- a/packages/fill-scenarios/CHANGELOG.md
+++ b/packages/fill-scenarios/CHANGELOG.md
@@ -5,6 +5,18 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.2 - _February 7, 2019_
+
+ * Dependencies updated
+
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.1.2 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/fill-scenarios/package.json b/packages/fill-scenarios/package.json
index d882aba76..8ec4a1111 100644
--- a/packages/fill-scenarios/package.json
+++ b/packages/fill-scenarios/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/fill-scenarios",
- "version": "1.1.2",
+ "version": "2.0.2",
"description": "0x order fill scenario generator",
"main": "lib/index.js",
"types": "lib/index.d.ts",
@@ -20,7 +20,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/fill-scenarios/README.md",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/lodash": "4.14.104",
"make-promises-safe": "^1.1.0",
"shx": "^0.2.2",
@@ -28,17 +28,17 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^2.2.0",
- "@0x/base-contract": "^3.0.13",
+ "@0x/abi-gen-wrappers": "^3.0.1",
+ "@0x/base-contract": "^4.0.1",
"@0x/contract-artifacts": "^1.3.0",
- "@0x/order-utils": "^3.1.2",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
- "ethereum-types": "^1.1.6",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
+ "ethereum-types": "^2.0.0",
"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..07e817324 100644
--- a/packages/instant/package.json
+++ b/packages/instant/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/instant",
- "version": "1.0.8",
+ "version": "1.0.11",
"engines": {
"node": ">=6.12"
},
@@ -42,50 +42,50 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/instant/README.md",
"dependencies": {
- "@0x/assert": "^1.0.23",
- "@0x/asset-buyer": "^4.0.2",
- "@0x/json-schemas": "^2.1.7",
- "@0x/order-utils": "^3.1.2",
- "@0x/subproviders": "^2.1.11",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/assert": "^2.0.1",
+ "@0x/asset-buyer": "^5.0.2",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"babel-runtime": "^6.26.0",
"bowser": "^1.9.4",
"copy-to-clipboard": "^3.0.8",
- "ethereum-types": "^1.1.6",
- "lodash": "^4.17.5",
- "polished": "^2.2.0",
+ "ethereum-types": "^2.0.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": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@static/discharge": "https://github.com/0xProject/discharge.git",
"@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",
"awesome-typescript-loader": "^5.2.1",
"babel-loader": "^7.1.5",
- "babel-preset-env": "^1.7.0",
- "babel-plugin-transform-runtime": "^6.23.0",
"babel-plugin-transform-es3-member-expression-literals": "^6.22.0",
"babel-plugin-transform-es3-property-literals": "^6.22.0",
"babel-plugin-transform-object-assign": "^6.22.0",
+ "babel-plugin-transform-runtime": "^6.23.0",
+ "babel-preset-env": "^1.7.0",
"dotenv-cli": "^1.4.0",
"enzyme": "^3.6.0",
"enzyme-adapter-react-16": "^1.5.0",
@@ -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/json-schemas/CHANGELOG.json b/packages/json-schemas/CHANGELOG.json
index 66de84299..0f8ad747c 100644
--- a/packages/json-schemas/CHANGELOG.json
+++ b/packages/json-schemas/CHANGELOG.json
@@ -1,12 +1,26 @@
[
{
+ "timestamp": 1549452781,
+ "version": "3.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "3.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
+ },
+ {
+ "note": "Add `verifyingContractAddress` to `zeroExTransactionSchema`",
+ "pr": 1576
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/json-schemas/CHANGELOG.md b/packages/json-schemas/CHANGELOG.md
index 4e562d9e8..8d6ec83bf 100644
--- a/packages/json-schemas/CHANGELOG.md
+++ b/packages/json-schemas/CHANGELOG.md
@@ -5,6 +5,15 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v3.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+ * Add `verifyingContractAddress` to `zeroExTransactionSchema` (#1576)
+
## v2.1.7 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/json-schemas/package.json b/packages/json-schemas/package.json
index cd515a747..1b6fdc116 100644
--- a/packages/json-schemas/package.json
+++ b/packages/json-schemas/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/json-schemas",
- "version": "2.1.7",
+ "version": "3.0.1",
"engines": {
"node": ">=6.12"
},
@@ -39,14 +39,14 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/json-schemas/README.md",
"dependencies": {
- "@0x/typescript-typings": "^3.0.8",
+ "@0x/typescript-typings": "^4.0.0",
"@types/node": "*",
"jsonschema": "^1.2.0",
"lodash.values": "^4.3.0"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
- "@0x/utils": "^3.0.1",
+ "@0x/tslint-config": "^3.0.0",
+ "@0x/utils": "^4.0.2",
"@types/lodash.foreach": "^4.5.3",
"@types/lodash.values": "^4.3.3",
"@types/mocha": "^2.2.42",
diff --git a/packages/json-schemas/schemas/zero_ex_transaction_schema.json b/packages/json-schemas/schemas/zero_ex_transaction_schema.json
index 0c714f14d..ffdf1f229 100644
--- a/packages/json-schemas/schemas/zero_ex_transaction_schema.json
+++ b/packages/json-schemas/schemas/zero_ex_transaction_schema.json
@@ -1,10 +1,11 @@
{
"id": "/zeroExTransactionSchema",
"properties": {
+ "verifyingContractAddress": { "$ref": "/addressSchema" },
"data": { "$ref": "/hexSchema" },
"signerAddress": { "$ref": "/addressSchema" },
"salt": { "$ref": "/wholeNumberSchema" }
},
- "required": ["data", "salt", "signerAddress"],
+ "required": ["verifyingContractAddress", "data", "salt", "signerAddress"],
"type": "object"
}
diff --git a/packages/metacoin/package.json b/packages/metacoin/package.json
index 3b082f075..24b387355 100644
--- a/packages/metacoin/package.json
+++ b/packages/metacoin/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/metacoin",
- "version": "0.0.36",
+ "version": "0.0.38",
"engines": {
"node": ">=6.12"
},
@@ -29,28 +29,28 @@
"author": "",
"license": "Apache-2.0",
"dependencies": {
- "@0x/abi-gen": "^1.0.22",
- "@0x/abi-gen-templates": "^1.0.2",
- "@0x/base-contract": "^3.0.13",
- "@0x/sol-coverage": "^1.0.3",
- "@0x/sol-profiler": "^1.0.3",
- "@0x/sol-trace": "^1.0.3",
- "@0x/subproviders": "^2.1.11",
- "@0x/tslint-config": "^2.0.2",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
- "@types/mocha": "^5.2.2",
+ "@0x/abi-gen": "^2.0.1",
+ "@0x/abi-gen-templates": "^2.0.0",
+ "@0x/base-contract": "^4.0.1",
+ "@0x/sol-coverage": "^2.0.1",
+ "@0x/sol-profiler": "^2.0.2",
+ "@0x/sol-trace": "^2.0.2",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/tslint-config": "^3.0.0",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
+ "@types/mocha": "^2.2.42",
"copyfiles": "^2.0.0",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"ethers": "~4.0.4",
- "lodash": "^4.17.5",
+ "lodash": "^4.17.11",
"run-s": "^0.0.0"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.24",
- "@0x/sol-compiler": "^2.0.2",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/sol-compiler": "^3.0.1",
"chai": "^4.0.1",
"chai-as-promised": "^7.1.0",
"chai-bignumber": "^3.0.0",
diff --git a/packages/migrations/CHANGELOG.json b/packages/migrations/CHANGELOG.json
index ffda41e10..167279609 100644
--- a/packages/migrations/CHANGELOG.json
+++ b/packages/migrations/CHANGELOG.json
@@ -1,5 +1,23 @@
[
{
+ "timestamp": 1549504360,
+ "version": "3.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1549452781,
+ "version": "3.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "3.0.0",
"changes": [
{
@@ -18,7 +36,8 @@
"note": "Convert `from` to lower case when passed in via cli",
"pr": 1533
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"version": "2.4.0",
diff --git a/packages/migrations/CHANGELOG.md b/packages/migrations/CHANGELOG.md
index 6c9a84018..f759e4a91 100644
--- a/packages/migrations/CHANGELOG.md
+++ b/packages/migrations/CHANGELOG.md
@@ -5,6 +5,21 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.2 - _February 7, 2019_
+
+ * Dependencies updated
+
+## v3.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v3.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+ * Removed `owner` in Migrations (#1533)
+ * `txDefaults` parameter now requires the `from` field (#1533)
+ * Convert `from` to lower case when passed in via cli (#1533)
+
## v2.4.0 - _January 15, 2019_
* Added migrations for `MultiAssetProxy` contract (#1503)
diff --git a/packages/migrations/package.json b/packages/migrations/package.json
index 3ca4e8d6b..857136158 100644
--- a/packages/migrations/package.json
+++ b/packages/migrations/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/migrations",
- "version": "2.4.0",
+ "version": "3.0.2",
"engines": {
"node": ">=6.12"
},
@@ -35,10 +35,10 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@0x/dev-utils": "^1.0.24",
- "@0x/tslint-config": "^2.0.2",
- "@0x/types": "^1.5.2",
- "@types/yargs": "^10.0.0",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/tslint-config": "^3.0.0",
+ "@0x/types": "^2.0.1",
+ "@types/yargs": "^11.0.0",
"make-promises-safe": "^1.1.0",
"npm-run-all": "^4.1.2",
"shx": "^0.2.2",
@@ -48,20 +48,20 @@
"yargs": "^10.0.3"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^2.2.0",
- "@0x/base-contract": "^3.0.13",
- "@0x/contract-addresses": "^2.2.0",
+ "@0x/abi-gen-wrappers": "^3.0.1",
+ "@0x/base-contract": "^4.0.1",
+ "@0x/contract-addresses": "^2.2.1",
"@0x/contract-artifacts": "^1.3.0",
- "@0x/order-utils": "^3.1.2",
- "@0x/sol-compiler": "^2.0.2",
- "@0x/subproviders": "^2.1.11",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/sol-compiler": "^3.0.1",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"@ledgerhq/hw-app-eth": "^4.3.0",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"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 6904a793b..24dca0004 100644
--- a/packages/monorepo-scripts/package.json
+++ b/packages/monorepo-scripts/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@0x/monorepo-scripts",
- "version": "1.0.19",
+ "version": "1.0.22",
"engines": {
"node": ">=6.12"
},
@@ -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",
@@ -47,8 +47,8 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/utils": "^3.0.1",
- "@0x/types": "^1.5.2",
+ "@0x/types": "^2.0.1",
+ "@0x/utils": "^4.0.2",
"@lerna/batch-packages": "^3.0.0-beta.18",
"@types/depcheck": "^0.6.0",
"async-child-process": "^1.1.1",
@@ -56,7 +56,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 d15bb6b4d..fb57a26ef 100644
--- a/packages/monorepo-scripts/src/deps_versions.ts
+++ b/packages/monorepo-scripts/src/deps_versions.ts
@@ -1,9 +1,9 @@
#!/usr/bin/env node
-import { PackageJSON } from '@0x/types';
+import { PackageJSON, PackageJSONConfig } from '@0x/types';
import chalk from 'chalk';
import { sync as globSync } from 'glob';
-import * as _ from 'lodash';
+import * as path from 'path';
import { utils } from './utils/utils';
@@ -17,11 +17,35 @@ 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 = utils.readJSONFile<PackageJSON>(path.join(__dirname, '../../../package.json'))
+ .config as PackageJSONConfig;
+const dependenciesWithIgnoredVersions: string[] = (config.ignoreDependencyVersions as string).split(' ');
+const packagesWithIgnoredVersions: string[] = (config.ignoreDependencyVersionsForPackage as string).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 packageJSON = utils.readJSONFile<PackageJSON>(path);
+function getDependencies(_path: string): Dependencies {
+ const packageJSON = utils.readJSONFile<PackageJSON>(_path);
const dependencies = {
...packageJSON.dependencies,
...packageJSON.devDependencies,
@@ -29,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/monorepo-scripts/src/publish.ts b/packages/monorepo-scripts/src/publish.ts
index ddb2811f2..b9179678e 100644
--- a/packages/monorepo-scripts/src/publish.ts
+++ b/packages/monorepo-scripts/src/publish.ts
@@ -47,7 +47,7 @@ async function confirmAsync(message: string): Promise<void> {
await confirmAsync(
'THIS IS NOT A TEST PUBLISH! You are about to publish one or more packages to npm. Are you sure you want to continue? (y/n)',
);
- await confirmDocPagesRenderAsync(packagesWithDocs);
+ // await confirmDocPagesRenderAsync(packagesWithDocs);
}
// Update CHANGELOGs
diff --git a/packages/order-utils/CHANGELOG.json b/packages/order-utils/CHANGELOG.json
index 08d88da5b..d58a8a4c2 100644
--- a/packages/order-utils/CHANGELOG.json
+++ b/packages/order-utils/CHANGELOG.json
@@ -1,12 +1,42 @@
[
{
+ "version": "6.0.0",
+ "changes": {
+ "note": "Stop exporting the EIP712 schemas"
+ },
+ "timestamp": 1549504360
+ },
+ {
+ "version": "5.0.0",
+ "changes": [
+ {
+ "note": "Add `transactionHashUtils`",
+ "pr": 1576
+ },
+ {
+ "note": "Refactor `eip712Utils` to allow custom domain params",
+ "pr": 1576
+ },
+ {
+ "note": "Export constant EIP712 params",
+ "pr": 1576
+ }
+ ],
+ "timestamp": 1549452781
+ },
+ {
"version": "4.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
+ },
+ {
+ "note": "Fix preSigned `isSignatureValidAsync` check",
+ "pr": 1580
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/order-utils/CHANGELOG.md b/packages/order-utils/CHANGELOG.md
index c82458f2e..f5e20a8d8 100644
--- a/packages/order-utils/CHANGELOG.md
+++ b/packages/order-utils/CHANGELOG.md
@@ -5,6 +5,21 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v6.0.0 - _February 7, 2019_
+
+ * undefined
+
+## v5.0.0 - _February 6, 2019_
+
+ * Add `transactionHashUtils` (#1576)
+ * Refactor `eip712Utils` to allow custom domain params (#1576)
+ * Export constant EIP712 params (#1576)
+
+## v4.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+ * Fix preSigned `isSignatureValidAsync` check (#1580)
+
## v3.1.2 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/order-utils/package.json b/packages/order-utils/package.json
index 7a4d4aa84..90fdfeed3 100644
--- a/packages/order-utils/package.json
+++ b/packages/order-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/order-utils",
- "version": "3.1.2",
+ "version": "6.0.0",
"engines": {
"node": ">=6.12"
},
@@ -35,8 +35,8 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/order-utils/README.md",
"devDependencies": {
- "@0x/dev-utils": "^1.0.24",
- "@0x/tslint-config": "^2.0.2",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/tslint-config": "^3.0.0",
"@types/bn.js": "^4.11.0",
"@types/lodash": "4.14.104",
"chai": "^4.0.1",
@@ -53,22 +53,23 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^2.2.0",
- "@0x/assert": "^1.0.23",
- "@0x/base-contract": "^3.0.13",
+ "@0x/abi-gen-wrappers": "^3.0.1",
+ "@0x/assert": "^2.0.1",
+ "@0x/base-contract": "^4.0.1",
+ "@0x/contract-addresses": "^2.2.1",
"@0x/contract-artifacts": "^1.3.0",
- "@0x/json-schemas": "^2.1.7",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"@types/node": "*",
"bn.js": "^4.11.8",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"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-utils/src/constants.ts b/packages/order-utils/src/constants.ts
index a9a687719..3c93575b3 100644
--- a/packages/order-utils/src/constants.ts
+++ b/packages/order-utils/src/constants.ts
@@ -68,9 +68,9 @@ export const constants = {
SELECTOR_CHAR_LENGTH_WITH_PREFIX: 10,
INFINITE_TIMESTAMP_SEC: new BigNumber(2524604400), // Close to infinite
ZERO_AMOUNT: new BigNumber(0),
- EIP712_DOMAIN_NAME: '0x Protocol',
- EIP712_DOMAIN_VERSION: '2',
- EIP712_DOMAIN_SCHEMA: {
+ EXCHANGE_DOMAIN_NAME: '0x Protocol',
+ EXCHANGE_DOMAIN_VERSION: '2',
+ DEFAULT_DOMAIN_SCHEMA: {
name: 'EIP712Domain',
parameters: [
{ name: 'name', type: 'string' },
@@ -78,7 +78,7 @@ export const constants = {
{ name: 'verifyingContract', type: 'address' },
],
},
- EIP712_ORDER_SCHEMA: {
+ EXCHANGE_ORDER_SCHEMA: {
name: 'Order',
parameters: [
{ name: 'makerAddress', type: 'address' },
@@ -95,7 +95,7 @@ export const constants = {
{ name: 'takerAssetData', type: 'bytes' },
],
},
- EIP712_ZEROEX_TRANSACTION_SCHEMA: {
+ EXCHANGE_ZEROEX_TRANSACTION_SCHEMA: {
name: 'ZeroExTransaction',
parameters: [
{ name: 'salt', type: 'uint256' },
diff --git a/packages/order-utils/src/eip712_utils.ts b/packages/order-utils/src/eip712_utils.ts
index 385fda989..685fdc8c8 100644
--- a/packages/order-utils/src/eip712_utils.ts
+++ b/packages/order-utils/src/eip712_utils.ts
@@ -1,6 +1,13 @@
import { assert } from '@0x/assert';
import { schemas } from '@0x/json-schemas';
-import { EIP712Object, EIP712TypedData, EIP712Types, Order, ZeroExTransaction } from '@0x/types';
+import {
+ EIP712DomainWithDefaultSchema,
+ EIP712Object,
+ EIP712TypedData,
+ EIP712Types,
+ Order,
+ ZeroExTransaction,
+} from '@0x/types';
import * as _ from 'lodash';
import { constants } from './constants';
@@ -11,26 +18,26 @@ export const eip712Utils = {
* @param primaryType The primary type found in message
* @param types The additional types for the data in message
* @param message The contents of the message
- * @param exchangeAddress The address of the exchange contract
+ * @param domain Domain containing a name (optional), version (optional), and verifying contract address
* @return A typed data object
*/
createTypedData: (
primaryType: string,
types: EIP712Types,
message: EIP712Object,
- exchangeAddress: string,
+ domain: EIP712DomainWithDefaultSchema,
): EIP712TypedData => {
- assert.isETHAddressHex('exchangeAddress', exchangeAddress);
+ assert.isETHAddressHex('verifyingContractAddress', domain.verifyingContractAddress);
assert.isString('primaryType', primaryType);
const typedData = {
types: {
- EIP712Domain: constants.EIP712_DOMAIN_SCHEMA.parameters,
+ EIP712Domain: constants.DEFAULT_DOMAIN_SCHEMA.parameters,
...types,
},
domain: {
- name: constants.EIP712_DOMAIN_NAME,
- version: constants.EIP712_DOMAIN_VERSION,
- verifyingContract: exchangeAddress,
+ name: _.isUndefined(domain.name) ? constants.EXCHANGE_DOMAIN_NAME : domain.name,
+ version: _.isUndefined(domain.version) ? constants.EXCHANGE_DOMAIN_VERSION : domain.version,
+ verifyingContract: domain.verifyingContractAddress,
},
message,
primaryType,
@@ -48,11 +55,14 @@ export const eip712Utils = {
const normalizedOrder = _.mapValues(order, value => {
return !_.isString(value) ? value.toString() : value;
});
+ const domain = {
+ verifyingContractAddress: order.exchangeAddress,
+ };
const typedData = eip712Utils.createTypedData(
- constants.EIP712_ORDER_SCHEMA.name,
- { Order: constants.EIP712_ORDER_SCHEMA.parameters },
+ constants.EXCHANGE_ORDER_SCHEMA.name,
+ { Order: constants.EXCHANGE_ORDER_SCHEMA.parameters },
normalizedOrder,
- order.exchangeAddress,
+ domain,
);
return typedData;
},
@@ -60,23 +70,22 @@ export const eip712Utils = {
* Creates an ExecuteTransaction EIP712TypedData object for use with signTypedData and
* 0x Exchange executeTransaction.
* @param ZeroExTransaction the 0x transaction
- * @param exchangeAddress The address of the exchange contract
* @return A typed data object
*/
- createZeroExTransactionTypedData: (
- zeroExTransaction: ZeroExTransaction,
- exchangeAddress: string,
- ): EIP712TypedData => {
- assert.isETHAddressHex('exchangeAddress', exchangeAddress);
+ createZeroExTransactionTypedData: (zeroExTransaction: ZeroExTransaction): EIP712TypedData => {
+ assert.isETHAddressHex('verifyingContractAddress', zeroExTransaction.verifyingContractAddress);
assert.doesConformToSchema('zeroExTransaction', zeroExTransaction, schemas.zeroExTransactionSchema);
const normalizedTransaction = _.mapValues(zeroExTransaction, value => {
return !_.isString(value) ? value.toString() : value;
});
+ const domain = {
+ verifyingContractAddress: zeroExTransaction.verifyingContractAddress,
+ };
const typedData = eip712Utils.createTypedData(
- constants.EIP712_ZEROEX_TRANSACTION_SCHEMA.name,
- { ZeroExTransaction: constants.EIP712_ZEROEX_TRANSACTION_SCHEMA.parameters },
+ constants.EXCHANGE_ZEROEX_TRANSACTION_SCHEMA.name,
+ { ZeroExTransaction: constants.EXCHANGE_ZEROEX_TRANSACTION_SCHEMA.parameters },
normalizedTransaction,
- exchangeAddress,
+ domain,
);
return typedData;
},
diff --git a/packages/order-utils/src/index.ts b/packages/order-utils/src/index.ts
index 2150a02e4..ff37d7088 100644
--- a/packages/order-utils/src/index.ts
+++ b/packages/order-utils/src/index.ts
@@ -3,6 +3,7 @@ export { signatureUtils } from './signature_utils';
export { generatePseudoRandomSalt } from './salt';
export { assetDataUtils } from './asset_data_utils';
export { marketUtils } from './market_utils';
+export { transactionHashUtils } from './transaction_hash';
export { rateUtils } from './rate_utils';
export { sortingUtils } from './sorting_utils';
export { orderParsingUtils } from './parsing_utils';
@@ -50,7 +51,9 @@ export {
EIP712Types,
EIP712Object,
EIP712ObjectValue,
+ EIP712DomainWithDefaultSchema,
ZeroExTransaction,
+ SignedZeroExTransaction,
} from '@0x/types';
export {
OrderError,
diff --git a/packages/order-utils/src/order_hash.ts b/packages/order-utils/src/order_hash.ts
index c8e9be71e..ce7e6d85f 100644
--- a/packages/order-utils/src/order_hash.ts
+++ b/packages/order-utils/src/order_hash.ts
@@ -4,6 +4,7 @@ import { signTypedDataUtils } from '@0x/utils';
import * as _ from 'lodash';
import { assert } from './assert';
+import { constants } from './constants';
import { eip712Utils } from './eip712_utils';
const INVALID_TAKER_FORMAT = 'instance.takerAddress is not of a type(s) string';
@@ -34,8 +35,9 @@ export const orderHashUtils = {
assert.doesConformToSchema('order', order, schemas.orderSchema, [schemas.hexSchema]);
} catch (error) {
if (_.includes(error.message, INVALID_TAKER_FORMAT)) {
- const errMsg =
- 'Order taker must be of type string. If you want anyone to be able to fill an order - pass ZeroEx.NULL_ADDRESS';
+ const errMsg = `Order taker must be of type string. If you want anyone to be able to fill an order - pass ${
+ constants.NULL_ADDRESS
+ }`;
throw new Error(errMsg);
}
throw error;
@@ -51,6 +53,17 @@ export const orderHashUtils = {
* @return A Buffer containing the resulting orderHash from hashing the supplied order
*/
getOrderHashBuffer(order: SignedOrder | Order): Buffer {
+ try {
+ assert.doesConformToSchema('order', order, schemas.orderSchema, [schemas.hexSchema]);
+ } catch (error) {
+ if (_.includes(error.message, INVALID_TAKER_FORMAT)) {
+ const errMsg = `Order taker must be of type string. If you want anyone to be able to fill an order - pass ${
+ constants.NULL_ADDRESS
+ }`;
+ throw new Error(errMsg);
+ }
+ throw error;
+ }
const typedData = eip712Utils.createOrderTypedData(order);
const orderHashBuff = signTypedDataUtils.generateTypedDataHash(typedData);
return orderHashBuff;
diff --git a/packages/order-utils/src/signature_utils.ts b/packages/order-utils/src/signature_utils.ts
index 131144d48..efcc146bf 100644
--- a/packages/order-utils/src/signature_utils.ts
+++ b/packages/order-utils/src/signature_utils.ts
@@ -1,4 +1,5 @@
import { ExchangeContract, IValidatorContract, IWalletContract } from '@0x/abi-gen-wrappers';
+import { getContractAddressesForNetworkOrThrow } from '@0x/contract-addresses';
import * as artifacts from '@0x/contract-artifacts';
import { schemas } from '@0x/json-schemas';
import { ECSignature, Order, SignatureType, SignedOrder, ValidatorSignature } from '@0x/types';
@@ -92,7 +93,14 @@ export const signatureUtils = {
assert.isWeb3Provider('provider', provider);
assert.isHexString('data', data);
assert.isETHAddressHex('signerAddress', signerAddress);
- const exchangeContract = new ExchangeContract(artifacts.Exchange.compilerOutput.abi, signerAddress, provider);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const networkId = await web3Wrapper.getNetworkIdAsync();
+ const addresses = getContractAddressesForNetworkOrThrow(networkId);
+ const exchangeContract = new ExchangeContract(
+ artifacts.Exchange.compilerOutput.abi,
+ addresses.exchange,
+ provider,
+ );
const isValid = await exchangeContract.preSigned.callAsync(data, signerAddress);
return isValid;
},
diff --git a/packages/order-utils/src/transaction_hash.ts b/packages/order-utils/src/transaction_hash.ts
new file mode 100644
index 000000000..2b2345af7
--- /dev/null
+++ b/packages/order-utils/src/transaction_hash.ts
@@ -0,0 +1,46 @@
+import { schemas, SchemaValidator } from '@0x/json-schemas';
+import { SignedZeroExTransaction, ZeroExTransaction } from '@0x/types';
+import { signTypedDataUtils } from '@0x/utils';
+import * as _ from 'lodash';
+
+import { assert } from './assert';
+import { eip712Utils } from './eip712_utils';
+
+export const transactionHashUtils = {
+ /**
+ * Checks if the supplied hex encoded 0x transaction hash is valid.
+ * Note: Valid means it has the expected format, not that a transaction with the transactionHash exists.
+ * Use this method when processing transactionHashes submitted as user input.
+ * @param transactionHash Hex encoded transactionHash.
+ * @return Whether the supplied transactionHash has the expected format.
+ */
+ isValidTransactionHash(transactionHash: string): boolean {
+ // Since this method can be called to check if any arbitrary string conforms to an transactionHash's
+ // format, we only assert that we were indeed passed a string.
+ assert.isString('transactionHash', transactionHash);
+ const schemaValidator = new SchemaValidator();
+ const isValid = schemaValidator.validate(transactionHash, schemas.orderHashSchema).valid;
+ return isValid;
+ },
+ /**
+ * Computes the transactionHash for a supplied 0x transaction.
+ * @param transaction An object that conforms to the ZeroExTransaction or SignedZeroExTransaction interface definitions.
+ * @return Hex encoded string transactionHash from hashing the supplied order.
+ */
+ getTransactionHashHex(transaction: ZeroExTransaction | SignedZeroExTransaction): string {
+ assert.doesConformToSchema('transaction', transaction, schemas.zeroExTransactionSchema, [schemas.hexSchema]);
+ const transactionHashBuff = transactionHashUtils.getTransactionHashBuffer(transaction);
+ const transactionHashHex = `0x${transactionHashBuff.toString('hex')}`;
+ return transactionHashHex;
+ },
+ /**
+ * Computes the transactionHash for a supplied 0x transaction.
+ * @param transaction An object that conforms to the ZeroExTransaction or SignedZeroExTransaction interface definitions.
+ * @return A Buffer containing the resulting transactionHash from hashing the supplied 0x transaction.
+ */
+ getTransactionHashBuffer(transaction: ZeroExTransaction | SignedZeroExTransaction): Buffer {
+ const typedData = eip712Utils.createZeroExTransactionTypedData(transaction);
+ const transactionHashBuff = signTypedDataUtils.generateTypedDataHash(typedData);
+ return transactionHashBuff;
+ },
+};
diff --git a/packages/order-utils/test/eip712_utils_test.ts b/packages/order-utils/test/eip712_utils_test.ts
index a54e49958..c97bed144 100644
--- a/packages/order-utils/test/eip712_utils_test.ts
+++ b/packages/order-utils/test/eip712_utils_test.ts
@@ -12,33 +12,55 @@ const expect = chai.expect;
describe('EIP712 Utils', () => {
describe('createTypedData', () => {
- it('adds in the EIP712DomainSeparator', () => {
+ it('adds in the EIP712DomainSeparator with default values', () => {
const primaryType = 'Test';
const typedData = eip712Utils.createTypedData(
primaryType,
{ Test: [{ name: 'testValue', type: 'uint256' }] },
{ testValue: '1' },
- constants.NULL_ADDRESS,
+ { verifyingContractAddress: constants.NULL_ADDRESS },
);
expect(typedData.domain).to.not.be.undefined();
expect(typedData.types.EIP712Domain).to.not.be.undefined();
const domainObject = typedData.domain;
- expect(domainObject.name).to.eq(constants.EIP712_DOMAIN_NAME);
+ expect(domainObject.name).to.eq(constants.EXCHANGE_DOMAIN_NAME);
+ expect(domainObject.version).to.eq(constants.EXCHANGE_DOMAIN_VERSION);
+ expect(domainObject.verifyingContract).to.eq(constants.NULL_ADDRESS);
+ expect(typedData.primaryType).to.eq(primaryType);
+ });
+ it('adds in the EIP712DomainSeparator without default values', () => {
+ const primaryType = 'Test';
+ const domainName = 'testDomain';
+ const domainVersion = 'testVersion';
+ const typedData = eip712Utils.createTypedData(
+ primaryType,
+ { Test: [{ name: 'testValue', type: 'uint256' }] },
+ { testValue: '1' },
+ { name: domainName, version: domainVersion, verifyingContractAddress: constants.NULL_ADDRESS },
+ );
+ expect(typedData.domain).to.not.be.undefined();
+ expect(typedData.types.EIP712Domain).to.not.be.undefined();
+ const domainObject = typedData.domain;
+ expect(domainObject.name).to.eq(domainName);
+ expect(domainObject.version).to.eq(domainVersion);
+ expect(domainObject.verifyingContract).to.eq(constants.NULL_ADDRESS);
expect(typedData.primaryType).to.eq(primaryType);
});
});
- describe('createTypedData', () => {
+ describe('createZeroExTransactionTypedData', () => {
it('adds in the EIP712DomainSeparator', () => {
- const typedData = eip712Utils.createZeroExTransactionTypedData(
- {
- salt: new BigNumber('0'),
- data: constants.NULL_BYTES,
- signerAddress: constants.NULL_ADDRESS,
- },
- constants.NULL_ADDRESS,
- );
- expect(typedData.primaryType).to.eq(constants.EIP712_ZEROEX_TRANSACTION_SCHEMA.name);
+ const typedData = eip712Utils.createZeroExTransactionTypedData({
+ salt: new BigNumber('0'),
+ data: constants.NULL_BYTES,
+ signerAddress: constants.NULL_ADDRESS,
+ verifyingContractAddress: constants.NULL_ADDRESS,
+ });
+ expect(typedData.primaryType).to.eq(constants.EXCHANGE_ZEROEX_TRANSACTION_SCHEMA.name);
expect(typedData.types.EIP712Domain).to.not.be.undefined();
+ const domainObject = typedData.domain;
+ expect(domainObject.name).to.eq(constants.EXCHANGE_DOMAIN_NAME);
+ expect(domainObject.version).to.eq(constants.EXCHANGE_DOMAIN_VERSION);
+ expect(domainObject.verifyingContract).to.eq(constants.NULL_ADDRESS);
});
});
});
diff --git a/packages/order-utils/test/order_hash_test.ts b/packages/order-utils/test/order_hash_test.ts
index 30fb15a37..514fc2709 100644
--- a/packages/order-utils/test/order_hash_test.ts
+++ b/packages/order-utils/test/order_hash_test.ts
@@ -54,8 +54,9 @@ describe('Order hashing', () => {
...order,
takerAddress: (null as any) as string,
};
- const expectedErrorMessage =
- 'Order taker must be of type string. If you want anyone to be able to fill an order - pass ZeroEx.NULL_ADDRESS';
+ const expectedErrorMessage = `Order taker must be of type string. If you want anyone to be able to fill an order - pass ${
+ constants.NULL_ADDRESS
+ }`;
expect(() => orderHashUtils.getOrderHashHex(orderWithInvalidtakerFormat)).to.throw(expectedErrorMessage);
});
});
diff --git a/packages/order-utils/test/signature_utils_test.ts b/packages/order-utils/test/signature_utils_test.ts
index 937382056..44aa729b3 100644
--- a/packages/order-utils/test/signature_utils_test.ts
+++ b/packages/order-utils/test/signature_utils_test.ts
@@ -99,6 +99,17 @@ describe('Signature utils', () => {
);
expect(isValidSignatureLocal).to.be.true();
});
+
+ it('should return false if entry not found in `preSigned` mapping', async () => {
+ const preSignedSignature = '0x06';
+ const isValidPreSignature = await signatureUtils.isValidSignatureAsync(
+ provider,
+ dataHex,
+ preSignedSignature,
+ address,
+ );
+ expect(isValidPreSignature).to.be.false();
+ });
});
describe('#isValidECSignature', () => {
const signature = {
diff --git a/packages/order-utils/test/transaction_hash_test.ts b/packages/order-utils/test/transaction_hash_test.ts
new file mode 100644
index 000000000..c7ca33a64
--- /dev/null
+++ b/packages/order-utils/test/transaction_hash_test.ts
@@ -0,0 +1,56 @@
+import { ZeroExTransaction } from '@0x/types';
+import { BigNumber } from '@0x/utils';
+import * as chai from 'chai';
+import 'mocha';
+
+import { transactionHashUtils } from '../src';
+
+import { constants } from '../src/constants';
+
+import { chaiSetup } from './utils/chai_setup';
+
+chaiSetup.configure();
+const expect = chai.expect;
+
+describe('0x transaction hashing', () => {
+ describe('#getTransactionHashHex', () => {
+ const expectedTransactionHash = '0x82c9bb2dcac4f868ec7a15c20ff6175cfc384c20ae6a872aa0342a840f108c2b';
+ const fakeVerifyingContractAddress = '0x5e72914535f202659083db3a02c984188fa26e9f';
+ const transaction: ZeroExTransaction = {
+ verifyingContractAddress: fakeVerifyingContractAddress,
+ signerAddress: constants.NULL_ADDRESS,
+ salt: new BigNumber(0),
+ data: constants.NULL_BYTES,
+ };
+ it('calculates the transaction hash', async () => {
+ const transactionHash = transactionHashUtils.getTransactionHashHex(transaction);
+ expect(transactionHash).to.be.equal(expectedTransactionHash);
+ });
+ it('calculates the transaction hash if amounts are strings', async () => {
+ // It's common for developers using javascript to provide the amounts
+ // as strings. Since we eventually toString() the BigNumber
+ // before encoding we should result in the same orderHash in this scenario
+ // tslint:disable-next-line:no-unnecessary-type-assertion
+ const transactionHash = transactionHashUtils.getTransactionHashHex({
+ ...transaction,
+ salt: '0',
+ } as any);
+ expect(transactionHash).to.be.equal(expectedTransactionHash);
+ });
+ });
+ describe('#isValidTransactionHash', () => {
+ it('returns false if the value is not a hex string', () => {
+ const isValid = transactionHashUtils.isValidTransactionHash('not a hex');
+ expect(isValid).to.be.false();
+ });
+ it('returns false if the length is wrong', () => {
+ const isValid = transactionHashUtils.isValidTransactionHash('0xdeadbeef');
+ expect(isValid).to.be.false();
+ });
+ it('returns true if order hash is correct', () => {
+ const orderHashLength = 65;
+ const isValid = transactionHashUtils.isValidTransactionHash(`0x${Array(orderHashLength).join('0')}`);
+ expect(isValid).to.be.true();
+ });
+ });
+});
diff --git a/packages/order-watcher/CHANGELOG.json b/packages/order-watcher/CHANGELOG.json
index 585bb48e6..c7bffa5b7 100644
--- a/packages/order-watcher/CHANGELOG.json
+++ b/packages/order-watcher/CHANGELOG.json
@@ -1,12 +1,31 @@
[
{
+ "timestamp": 1549504360,
+ "version": "3.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1549452781,
+ "version": "3.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "3.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547747677,
diff --git a/packages/order-watcher/CHANGELOG.md b/packages/order-watcher/CHANGELOG.md
index df065866c..bb908bfcf 100644
--- a/packages/order-watcher/CHANGELOG.md
+++ b/packages/order-watcher/CHANGELOG.md
@@ -5,6 +5,18 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.2 - _February 7, 2019_
+
+ * Dependencies updated
+
+## v3.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v3.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v2.4.3 - _January 17, 2019_
* Dependencies updated
diff --git a/packages/order-watcher/package.json b/packages/order-watcher/package.json
index 895c64813..3c4cc06ba 100644
--- a/packages/order-watcher/package.json
+++ b/packages/order-watcher/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/order-watcher",
- "version": "2.4.3",
+ "version": "3.0.2",
"description": "An order watcher daemon that watches for order validity",
"keywords": [
"0x",
@@ -38,10 +38,10 @@
"node": ">=6.0.0"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.24",
- "@0x/migrations": "^2.4.0",
- "@0x/subproviders": "^2.1.11",
- "@0x/tslint-config": "^2.0.2",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/migrations": "^3.0.2",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/tslint-config": "^3.0.0",
"@types/bintrees": "^1.0.2",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
@@ -63,24 +63,24 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^2.2.0",
- "@0x/assert": "^1.0.23",
- "@0x/base-contract": "^3.0.13",
- "@0x/contract-addresses": "^2.2.0",
+ "@0x/abi-gen-wrappers": "^3.0.1",
+ "@0x/assert": "^2.0.1",
+ "@0x/base-contract": "^4.0.1",
+ "@0x/contract-addresses": "^2.2.1",
"@0x/contract-artifacts": "^1.3.0",
- "@0x/contract-wrappers": "^5.0.1",
- "@0x/fill-scenarios": "^1.1.2",
- "@0x/json-schemas": "^2.1.7",
- "@0x/order-utils": "^3.1.2",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/contract-wrappers": "^7.0.1",
+ "@0x/fill-scenarios": "^2.0.2",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"bintrees": "^1.0.2",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"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/README.md b/packages/pipeline/README.md
index 4fc8e0ff9..23113fd9b 100644
--- a/packages/pipeline/README.md
+++ b/packages/pipeline/README.md
@@ -34,8 +34,10 @@ yarn lint
### Migrations
-Create a new migration: `yarn migrate:create --name MigrationNameInCamelCase`
+Create a new migration: `yarn migrate:create --name MigrationNameInCamelCase`.
+
Run migrations: `yarn migrate:run`
+
Revert the most recent migration (CAUTION: may result in data loss!): `yarn migrate:revert`
## Testing
diff --git a/packages/pipeline/package.json b/packages/pipeline/package.json
index 908734687..a1500cc74 100644
--- a/packages/pipeline/package.json
+++ b/packages/pipeline/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/pipeline",
- "version": "1.0.5",
+ "version": "1.0.8",
"private": true,
"description": "Data pipeline for offline analysis",
"scripts": {
@@ -27,35 +27,35 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@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"
},
"dependencies": {
- "@0x/connect": "^3.0.13",
- "@0x/contract-addresses": "^2.2.0",
+ "@0x/connect": "^4.0.2",
+ "@0x/contract-addresses": "^2.2.1",
"@0x/contract-artifacts": "^1.3.0",
- "@0x/contract-wrappers": "^3.0.0",
- "@0x/dev-utils": "^1.0.24",
- "@0x/order-utils": "^3.1.2",
- "@0x/subproviders": "^2.1.11",
- "@0x/types": "^1.5.2",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/contract-wrappers": "^7.0.1",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"@types/dockerode": "^2.5.9",
"@types/p-limit": "^2.0.0",
"async-parallel": "^1.2.3",
"axios": "^0.18.0",
"bottleneck": "^2.13.2",
"dockerode": "^2.5.7",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"pg": "^7.5.0",
"prettier": "^1.15.3",
"ramda": "^0.25.0",
diff --git a/packages/react-docs/CHANGELOG.json b/packages/react-docs/CHANGELOG.json
index 8b418fc11..9fccd6257 100644
--- a/packages/react-docs/CHANGELOG.json
+++ b/packages/react-docs/CHANGELOG.json
@@ -1,12 +1,31 @@
[
{
+ "timestamp": 1549504360,
+ "version": "2.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/react-docs/CHANGELOG.md b/packages/react-docs/CHANGELOG.md
index 5ec82b5be..a95f5371b 100644
--- a/packages/react-docs/CHANGELOG.md
+++ b/packages/react-docs/CHANGELOG.md
@@ -5,6 +5,18 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.2 - _February 7, 2019_
+
+ * Dependencies updated
+
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.25 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/react-docs/package.json b/packages/react-docs/package.json
index f8f2b6276..ed32f4289 100644
--- a/packages/react-docs/package.json
+++ b/packages/react-docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/react-docs",
- "version": "1.0.25",
+ "version": "2.0.2",
"engines": {
"node": ">=6.12"
},
@@ -24,19 +24,19 @@
"url": "https://github.com/0xProject/0x-monorepo.git"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.24",
- "@0x/tslint-config": "^2.0.2",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/tslint-config": "^3.0.0",
"@types/compare-versions": "^3.0.0",
"@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": {
- "@0x/react-shared": "^1.1.2",
- "@0x/types": "^1.5.2",
- "@0x/utils": "^3.0.1",
+ "@0x/react-shared": "^2.0.2",
+ "@0x/types": "^2.0.1",
+ "@0x/utils": "^4.0.2",
"@types/lodash": "4.14.104",
"@types/material-ui": "^0.20.0",
"@types/node": "*",
@@ -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/CHANGELOG.json b/packages/react-shared/CHANGELOG.json
index 99a8779ac..b9a7ca3df 100644
--- a/packages/react-shared/CHANGELOG.json
+++ b/packages/react-shared/CHANGELOG.json
@@ -1,12 +1,31 @@
[
{
+ "timestamp": 1549504360,
+ "version": "2.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/react-shared/CHANGELOG.md b/packages/react-shared/CHANGELOG.md
index e1a5df403..05bdffa14 100644
--- a/packages/react-shared/CHANGELOG.md
+++ b/packages/react-shared/CHANGELOG.md
@@ -5,6 +5,18 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.2 - _February 7, 2019_
+
+ * Dependencies updated
+
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.1.2 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/react-shared/package.json b/packages/react-shared/package.json
index 4be4742b0..3558d8afd 100644
--- a/packages/react-shared/package.json
+++ b/packages/react-shared/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/react-shared",
- "version": "1.1.2",
+ "version": "2.0.2",
"engines": {
"node": ">=6.12"
},
@@ -25,19 +25,19 @@
"url": "https://github.com/0xProject/0x-monorepo.git"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.24",
- "@0x/tslint-config": "^2.0.2",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/tslint-config": "^3.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": {
- "@0x/types": "^1.5.2",
+ "@0x/types": "^2.0.1",
"@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-peer-deps",
"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/react-shared/src/components/markdown_paragraph_block.tsx b/packages/react-shared/src/components/markdown_paragraph_block.tsx
index eeaef8571..9ed44ed07 100644
--- a/packages/react-shared/src/components/markdown_paragraph_block.tsx
+++ b/packages/react-shared/src/components/markdown_paragraph_block.tsx
@@ -6,5 +6,9 @@ import { colors } from '../utils/colors';
export interface MarkdownParagraphBlockProps {}
export const MarkdownParagraphBlock: React.StatelessComponent<MarkdownParagraphBlockProps> = ({ children }) => {
- return <span style={{ color: colors.greyTheme, lineHeight: '26px' }}>{children}</span>;
+ return (
+ <span style={{ color: colors.greyTheme, lineHeight: '26px', display: 'block', paddingBottom: 15 }}>
+ {children}
+ </span>
+ );
};
diff --git a/packages/sol-compiler/CHANGELOG.json b/packages/sol-compiler/CHANGELOG.json
index 672939a4a..5f103342e 100644
--- a/packages/sol-compiler/CHANGELOG.json
+++ b/packages/sol-compiler/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "3.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "3.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/sol-compiler/CHANGELOG.md b/packages/sol-compiler/CHANGELOG.md
index dfcec1fa7..400c33763 100644
--- a/packages/sol-compiler/CHANGELOG.md
+++ b/packages/sol-compiler/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v3.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v2.0.2 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/sol-compiler/package.json b/packages/sol-compiler/package.json
index 0b53cffd5..3ba3c20e6 100644
--- a/packages/sol-compiler/package.json
+++ b/packages/sol-compiler/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-compiler",
- "version": "2.0.2",
+ "version": "3.0.1",
"engines": {
"node": ">=6.12"
},
@@ -42,13 +42,13 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-compiler/README.md",
"devDependencies": {
- "@0x/dev-utils": "^1.0.24",
- "@0x/tslint-config": "^2.0.2",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/tslint-config": "^3.0.0",
"@types/chokidar": "^1.7.5",
"@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",
@@ -67,19 +67,19 @@
"zeppelin-solidity": "1.8.0"
},
"dependencies": {
- "@0x/assert": "^1.0.23",
- "@0x/json-schemas": "^2.1.7",
- "@0x/sol-resolver": "^1.2.3",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/assert": "^2.0.1",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/sol-resolver": "^2.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"@types/yargs": "^11.0.0",
"chalk": "^2.3.0",
"chokidar": "^2.0.4",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"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/CHANGELOG.json b/packages/sol-coverage/CHANGELOG.json
index 550ca2feb..c5b3ae84e 100644
--- a/packages/sol-coverage/CHANGELOG.json
+++ b/packages/sol-coverage/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547747677,
diff --git a/packages/sol-coverage/CHANGELOG.md b/packages/sol-coverage/CHANGELOG.md
index 18c1719bf..0612e407e 100644
--- a/packages/sol-coverage/CHANGELOG.md
+++ b/packages/sol-coverage/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.3 - _January 17, 2019_
* Dependencies updated
diff --git a/packages/sol-coverage/package.json b/packages/sol-coverage/package.json
index 805e2e670..f6be925bb 100644
--- a/packages/sol-coverage/package.json
+++ b/packages/sol-coverage/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-coverage",
- "version": "1.0.3",
+ "version": "2.0.1",
"engines": {
"node": ">=6.12"
},
@@ -29,14 +29,14 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-coverage/README.md",
"dependencies": {
- "@0x/sol-tracing-utils": "^4.0.1",
- "@0x/subproviders": "^2.1.11",
- "@0x/typescript-typings": "^3.0.8",
- "ethereum-types": "^1.1.6",
- "lodash": "^4.17.5"
+ "@0x/sol-tracing-utils": "^6.0.1",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "ethereum-types": "^2.0.0",
+ "lodash": "^4.17.11"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/node": "*",
"npm-run-all": "^4.1.2",
"nyc": "^11.0.1",
diff --git a/packages/sol-doc/CHANGELOG.json b/packages/sol-doc/CHANGELOG.json
index 662915faf..d4f89a32e 100644
--- a/packages/sol-doc/CHANGELOG.json
+++ b/packages/sol-doc/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/sol-doc/CHANGELOG.md b/packages/sol-doc/CHANGELOG.md
index 1a60b5f89..d838a52ae 100644
--- a/packages/sol-doc/CHANGELOG.md
+++ b/packages/sol-doc/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.14 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/sol-doc/package.json b/packages/sol-doc/package.json
index 179f45e81..e68e3a237 100644
--- a/packages/sol-doc/package.json
+++ b/packages/sol-doc/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-doc",
- "version": "1.0.14",
+ "version": "2.0.1",
"description": "Solidity documentation generator",
"main": "lib/src/index.js",
"types": "lib/src/index.d.js",
@@ -25,22 +25,22 @@
"author": "F. Eugene Aumson",
"license": "Apache-2.0",
"dependencies": {
- "@0x/sol-compiler": "^2.0.2",
- "@0x/types": "^1.5.2",
- "@0x/utils": "^3.0.1",
- "ethereum-types": "^1.1.6",
+ "@0x/sol-compiler": "^3.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/utils": "^4.0.2",
+ "ethereum-types": "^2.0.0",
"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",
+ "@0x/tslint-config": "^3.0.0",
+ "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/CHANGELOG.json b/packages/sol-profiler/CHANGELOG.json
index fc928b516..145158ab3 100644
--- a/packages/sol-profiler/CHANGELOG.json
+++ b/packages/sol-profiler/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.1",
"changes": [
{
"note": "Fix a bug when some parts of the profiling report were missing because of the coverage ignore lines",
"pr": 1535
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"version": "2.0.0",
diff --git a/packages/sol-profiler/CHANGELOG.md b/packages/sol-profiler/CHANGELOG.md
index 18c1719bf..cf0ec8ee7 100644
--- a/packages/sol-profiler/CHANGELOG.md
+++ b/packages/sol-profiler/CHANGELOG.md
@@ -5,6 +5,18 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.2 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.1 - _February 5, 2019_
+
+ * Fix a bug when some parts of the profiling report were missing because of the coverage ignore lines (#1535)
+
+## v2.0.0 - _Invalid date_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.3 - _January 17, 2019_
* Dependencies updated
diff --git a/packages/sol-profiler/package.json b/packages/sol-profiler/package.json
index 4fe2928c7..8518c88b0 100644
--- a/packages/sol-profiler/package.json
+++ b/packages/sol-profiler/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-profiler",
- "version": "1.0.3",
+ "version": "2.0.2",
"engines": {
"node": ">=6.12"
},
@@ -29,14 +29,14 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-profiler/README.md",
"dependencies": {
- "@0x/sol-tracing-utils": "^4.0.1",
- "@0x/subproviders": "^2.1.11",
- "@0x/typescript-typings": "^3.0.8",
- "ethereum-types": "^1.1.6",
- "lodash": "^4.17.5"
+ "@0x/sol-tracing-utils": "^6.0.1",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "ethereum-types": "^2.0.0",
+ "lodash": "^4.17.11"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/node": "*",
"npm-run-all": "^4.1.2",
"shx": "^0.2.2",
diff --git a/packages/sol-resolver/CHANGELOG.json b/packages/sol-resolver/CHANGELOG.json
index f5a005fd4..147f7ac61 100644
--- a/packages/sol-resolver/CHANGELOG.json
+++ b/packages/sol-resolver/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/sol-resolver/CHANGELOG.md b/packages/sol-resolver/CHANGELOG.md
index a48561cc3..90d7cc2b8 100644
--- a/packages/sol-resolver/CHANGELOG.md
+++ b/packages/sol-resolver/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.2.3 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/sol-resolver/package.json b/packages/sol-resolver/package.json
index 0518cde95..1f5189537 100644
--- a/packages/sol-resolver/package.json
+++ b/packages/sol-resolver/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-resolver",
- "version": "1.2.3",
+ "version": "2.0.1",
"engines": {
"node": ">=6.12"
},
@@ -23,16 +23,16 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/resolver/README.md",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"make-promises-safe": "^1.1.0",
"shx": "^0.2.2",
"tslint": "5.11.0",
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "lodash": "^4.17.5"
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "lodash": "^4.17.11"
},
"publishConfig": {
"access": "public"
diff --git a/packages/sol-trace/CHANGELOG.json b/packages/sol-trace/CHANGELOG.json
index b633b3d21..44ce3fcf6 100644
--- a/packages/sol-trace/CHANGELOG.json
+++ b/packages/sol-trace/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.1",
"changes": [
{
"note": "Improve error messages when unable to find matching bytecode",
"pr": 1558
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"version": "2.0.0",
diff --git a/packages/sol-trace/CHANGELOG.md b/packages/sol-trace/CHANGELOG.md
index 18c1719bf..92e53f6f3 100644
--- a/packages/sol-trace/CHANGELOG.md
+++ b/packages/sol-trace/CHANGELOG.md
@@ -5,6 +5,18 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.2 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.1 - _February 5, 2019_
+
+ * Improve error messages when unable to find matching bytecode (#1558)
+
+## v2.0.0 - _Invalid date_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.3 - _January 17, 2019_
* Dependencies updated
diff --git a/packages/sol-trace/package.json b/packages/sol-trace/package.json
index 25e81a82a..678253ce7 100644
--- a/packages/sol-trace/package.json
+++ b/packages/sol-trace/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-trace",
- "version": "1.0.3",
+ "version": "2.0.2",
"engines": {
"node": ">=6.12"
},
@@ -29,17 +29,17 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-trace/README.md",
"dependencies": {
- "@0x/sol-tracing-utils": "^4.0.1",
- "@0x/subproviders": "^2.1.11",
- "@0x/typescript-typings": "^3.0.8",
+ "@0x/sol-tracing-utils": "^6.0.1",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/typescript-typings": "^4.0.0",
"chalk": "^2.3.0",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"ethereumjs-util": "^5.1.1",
- "lodash": "^4.17.5",
+ "lodash": "^4.17.11",
"loglevel": "^1.6.1"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/loglevel": "^1.5.3",
"@types/node": "*",
"npm-run-all": "^4.1.2",
diff --git a/packages/sol-tracing-utils/CHANGELOG.json b/packages/sol-tracing-utils/CHANGELOG.json
index 89a5b6876..75131dddb 100644
--- a/packages/sol-tracing-utils/CHANGELOG.json
+++ b/packages/sol-tracing-utils/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1549452781,
+ "version": "6.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "6.0.0",
"changes": [
{
@@ -25,8 +34,17 @@
{
"note": "Improve error messages when unable to find matching bytecode",
"pr": 1558
+ },
+ {
+ "note": "Fix default gas limit for fake txs in `TraceCollectionSubprovider`",
+ "pr": 1583
+ },
+ {
+ "note": "Fix a big when we were not intercepting `eth_sendRawTransaction`",
+ "pr": 1584
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"version": "5.0.0",
diff --git a/packages/sol-tracing-utils/CHANGELOG.md b/packages/sol-tracing-utils/CHANGELOG.md
index 9bffb2a6d..3889e89c3 100644
--- a/packages/sol-tracing-utils/CHANGELOG.md
+++ b/packages/sol-tracing-utils/CHANGELOG.md
@@ -5,6 +5,25 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v6.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v6.0.0 - _February 5, 2019_
+
+ * `SolCompilerArtifactAdapter` now uses `SolResolver` under the hood which allows to resolve `NPM` dependencies properly (#1535)
+ * Cache the `utils.getContractDataIfExists` leading to faster execution (#1535)
+ * `SolCompilerArtifactAdapter` now doesn't return the `ContractData` for interfaces (#1535)
+ * Print resasonable error message on bytecode collision (#1535)
+ * Fix the bug in `ASTVisitor` causing the 'cannot read property `range` of `null`' error (#1557)
+ * Improve error messages when unable to find matching bytecode (#1558)
+ * Fix default gas limit for fake txs in `TraceCollectionSubprovider` (#1583)
+ * Fix a big when we were not intercepting `eth_sendRawTransaction` (#1584)
+
+## v5.0.0 - _Invalid date_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v4.0.1 - _January 17, 2019_
* Fix a bug where a custom `Geth` tracer didn't return stack entries for `DELEGATECALL` (#1521)
diff --git a/packages/sol-tracing-utils/package.json b/packages/sol-tracing-utils/package.json
index 929c73b84..5e2f69c82 100644
--- a/packages/sol-tracing-utils/package.json
+++ b/packages/sol-tracing-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-tracing-utils",
- "version": "4.0.1",
+ "version": "6.0.1",
"engines": {
"node": ">=6.12"
},
@@ -42,20 +42,21 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-tracing-utils/README.md",
"dependencies": {
- "@0x/dev-utils": "^1.0.24",
- "@0x/sol-compiler": "^2.0.2",
- "@0x/sol-resolver": "^1.2.3",
- "@0x/subproviders": "^2.1.11",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/dev-utils": "^2.0.1",
+ "@0x/sol-compiler": "^3.0.1",
+ "@0x/sol-resolver": "^2.0.1",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"@types/solidity-parser-antlr": "^0.2.0",
- "ethereum-types": "^1.1.6",
+ "chalk": "^2.3.0",
+ "ethereum-types": "^2.0.0",
"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",
@@ -63,10 +64,10 @@
"solidity-parser-antlr": "^0.2.12"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@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 5118921fa..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();
@@ -180,13 +193,13 @@ export abstract class TraceCollectionSubprovider extends Subprovider {
cb();
}
private async _recordCallOrGasEstimateTraceAsync(callData: Partial<CallDataRPC>): Promise<void> {
- // We don't want other transactions to be exeucted during snashotting period, that's why we lock the
+ // We don't want other transactions to be executed during snashotting period, that's why we lock the
// transaction execution for all transactions except our fake ones.
await this._lock.acquire();
const blockchainLifecycle = new BlockchainLifecycle(this._web3Wrapper);
await blockchainLifecycle.startAsync();
const fakeTxData = {
- gas: BLOCK_GAS_LIMIT.toString(16), // tslint:disable-line:custom-no-magic-numbers
+ gas: `0x${BLOCK_GAS_LIMIT.toString(16)}`, // tslint:disable-line:custom-no-magic-numbers
isFakeTransaction: true, // This transaction (and only it) is allowed to come through when the lock is locked
...callData,
from: callData.from || this._defaultFromAddress,
diff --git a/packages/sra-spec/CHANGELOG.json b/packages/sra-spec/CHANGELOG.json
index e22a3b0e4..b812f0809 100644
--- a/packages/sra-spec/CHANGELOG.json
+++ b/packages/sra-spec/CHANGELOG.json
@@ -1,12 +1,22 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/sra-spec/CHANGELOG.md b/packages/sra-spec/CHANGELOG.md
index 5fe40ccb4..ceae08a17 100644
--- a/packages/sra-spec/CHANGELOG.md
+++ b/packages/sra-spec/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v1.0.16 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/sra-spec/package.json b/packages/sra-spec/package.json
index 9c4c0a24f..7644cbe7d 100644
--- a/packages/sra-spec/package.json
+++ b/packages/sra-spec/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sra-spec",
- "version": "1.0.16",
+ "version": "2.0.1",
"engines": {
"node": ">=6.12"
},
@@ -35,20 +35,20 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/sra-spec/README.md",
"dependencies": {
- "@0x/json-schemas": "^2.1.7",
+ "@0x/json-schemas": "^3.0.1",
"@loopback/openapi-v3-types": "^0.8.2"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@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/CHANGELOG.json b/packages/subproviders/CHANGELOG.json
index ffb9740cd..ad005d2e5 100644
--- a/packages/subproviders/CHANGELOG.json
+++ b/packages/subproviders/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1549452781,
+ "version": "3.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "3.0.0",
"changes": [
{
@@ -10,7 +19,8 @@
"note": "Update ganache-core to v2.3.3",
"pr": 1518
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/subproviders/CHANGELOG.md b/packages/subproviders/CHANGELOG.md
index 16457ee2b..58a85b822 100644
--- a/packages/subproviders/CHANGELOG.md
+++ b/packages/subproviders/CHANGELOG.md
@@ -5,6 +5,15 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v3.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+ * Update ganache-core to v2.3.3 (#1518)
+
## v2.1.11 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json
index b54cc11db..30728434f 100644
--- a/packages/subproviders/package.json
+++ b/packages/subproviders/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/subproviders",
- "version": "2.1.11",
+ "version": "3.0.1",
"engines": {
"node": ">=6.12"
},
@@ -29,11 +29,11 @@
}
},
"dependencies": {
- "@0x/assert": "^1.0.23",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/assert": "^2.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"@ledgerhq/hw-app-eth": "^4.3.0",
"@ledgerhq/hw-transport-u2f": "4.24.0",
"@types/eth-lightwallet": "^3.0.0",
@@ -43,18 +43,18 @@
"bip39": "^2.5.0",
"bn.js": "^4.11.8",
"eth-lightwallet": "^3.0.1",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"ethereumjs-tx": "^1.3.5",
"ethereumjs-util": "^5.1.1",
"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"
},
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/bip39": "^2.4.0",
"@types/bn.js": "^4.11.0",
"@types/ethereumjs-tx": "^1.0.0",
diff --git a/packages/testnet-faucets/package.json b/packages/testnet-faucets/package.json
index da7477be4..22961d215 100644
--- a/packages/testnet-faucets/package.json
+++ b/packages/testnet-faucets/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "@0x/testnet-faucets",
- "version": "1.0.64",
+ "version": "1.0.67",
"engines": {
"node": ">=6.12"
},
@@ -18,21 +18,21 @@
"author": "Fabio Berger",
"license": "Apache-2.0",
"dependencies": {
- "0x.js": "^3.0.3",
- "@0x/subproviders": "^2.1.11",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "0x.js": "^4.0.2",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"body-parser": "^1.17.1",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"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",
+ "@0x/tslint-config": "^3.0.0",
"@types/body-parser": "^1.16.1",
"@types/express": "^4.0.35",
"@types/lodash": "4.14.104",
diff --git a/packages/tslint-config/CHANGELOG.json b/packages/tslint-config/CHANGELOG.json
index 34ea6aa6b..884a5b46f 100644
--- a/packages/tslint-config/CHANGELOG.json
+++ b/packages/tslint-config/CHANGELOG.json
@@ -6,7 +6,8 @@
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/tslint-config/CHANGELOG.md b/packages/tslint-config/CHANGELOG.md
index 37d287c10..5719f28a6 100644
--- a/packages/tslint-config/CHANGELOG.md
+++ b/packages/tslint-config/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v2.0.2 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/tslint-config/package.json b/packages/tslint-config/package.json
index f90321edb..b5846a5aa 100644
--- a/packages/tslint-config/package.json
+++ b/packages/tslint-config/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/tslint-config",
- "version": "2.0.2",
+ "version": "3.0.0",
"engines": {
"node": ">=6.12"
},
@@ -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/types/CHANGELOG.json b/packages/types/CHANGELOG.json
index 7a6d205ee..cb01ccc4a 100644
--- a/packages/types/CHANGELOG.json
+++ b/packages/types/CHANGELOG.json
@@ -1,12 +1,30 @@
[
{
+ "timestamp": 1549452781,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.0",
"changes": [
{
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
+ },
+ {
+ "note": "Update `ZeroExTransaction` type and add `SignedZeroExTransaction` type",
+ "pr": 1576
+ },
+ {
+ "note": "Add `EIP712DomainWithDefaultSchema` type",
+ "pr": 1576
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md
index ac27d9096..e43be5e55 100644
--- a/packages/types/CHANGELOG.md
+++ b/packages/types/CHANGELOG.md
@@ -5,6 +5,16 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v2.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+ * Update `ZeroExTransaction` type and add `SignedZeroExTransaction` type (#1576)
+ * Add `EIP712DomainWithDefaultSchema` type (#1576)
+
## v1.5.2 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/types/package.json b/packages/types/package.json
index 440f05423..4e196b292 100644
--- a/packages/types/package.json
+++ b/packages/types/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/types",
- "version": "1.5.2",
+ "version": "2.0.1",
"engines": {
"node": ">=6.12"
},
@@ -23,7 +23,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/types/README.md",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"make-promises-safe": "^1.1.0",
"shx": "^0.2.2",
"tslint": "5.11.0",
@@ -32,7 +32,7 @@
"dependencies": {
"@types/node": "*",
"bignumber.js": "~8.0.2",
- "ethereum-types": "^1.1.6"
+ "ethereum-types": "^2.0.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts
index dec386ccf..b3a083999 100644
--- a/packages/types/src/index.ts
+++ b/packages/types/src/index.ts
@@ -45,11 +45,16 @@ export interface SignedOrder extends Order {
* ZeroExTransaction for use with 0x Exchange executeTransaction
*/
export interface ZeroExTransaction {
+ verifyingContractAddress: string;
salt: BigNumber;
signerAddress: string;
data: string;
}
+export interface SignedZeroExTransaction extends ZeroExTransaction {
+ signature: string;
+}
+
/**
* Elliptic Curve signature
*/
@@ -686,22 +691,32 @@ export interface DutchAuctionDetails {
currentTimeSeconds: BigNumber;
}
+export interface PackageJSONConfig {
+ postpublish?: {
+ assets?: string[];
+ docOmitExports?: string[];
+ dockerHubRepo?: string;
+ };
+ 'abis:comment'?: string;
+ abis?: string;
+ ignoreDependencyVersions?: string;
+ ignoreDependencyVersionsForPackage?: string;
+}
+
export interface PackageJSON {
private?: boolean;
version: string;
name: string;
main?: string;
scripts?: { [command: string]: string };
- config?: {
- postpublish?: {
- assets?: string[];
- docOmitExports?: string[];
- dockerHubRepo?: string;
- };
- 'abis:comment'?: string;
- abis?: string;
- };
+ config?: PackageJSONConfig;
dependencies?: { [dependencyName: string]: string };
devDependencies?: { [dependencyName: string]: string };
workspaces?: string[];
}
+
+export interface EIP712DomainWithDefaultSchema {
+ name?: string;
+ version?: string;
+ verifyingContractAddress: string;
+}
diff --git a/packages/typescript-typings/CHANGELOG.json b/packages/typescript-typings/CHANGELOG.json
index e3ae60231..708911720 100644
--- a/packages/typescript-typings/CHANGELOG.json
+++ b/packages/typescript-typings/CHANGELOG.json
@@ -6,7 +6,8 @@
"note": "Upgrade the bignumber.js to v8.0.2",
"pr": 1517
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/typescript-typings/CHANGELOG.md b/packages/typescript-typings/CHANGELOG.md
index 8f23cce14..a879b1cf5 100644
--- a/packages/typescript-typings/CHANGELOG.md
+++ b/packages/typescript-typings/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v4.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v3.0.8 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/typescript-typings/package.json b/packages/typescript-typings/package.json
index 01cab8c63..f135e6f91 100644
--- a/packages/typescript-typings/package.json
+++ b/packages/typescript-typings/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/typescript-typings",
- "version": "3.0.8",
+ "version": "4.0.0",
"engines": {
"node": ">=6.12"
},
@@ -27,7 +27,7 @@
"@types/bn.js": "^4.11.0",
"@types/react": "*",
"bignumber.js": "~8.0.2",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"popper.js": "1.14.3"
},
"devDependencies": {
diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json
index 0fb199e58..9ff26e3e4 100644
--- a/packages/utils/CHANGELOG.json
+++ b/packages/utils/CHANGELOG.json
@@ -1,5 +1,25 @@
[
{
+ "version": "4.0.2",
+ "changes": [
+ {
+ "note": "ABI Decode NULL for all data types",
+ "pr": 1587
+ }
+ ],
+ "timestamp": 1549452781
+ },
+ {
+ "version": "4.0.1",
+ "changes": [
+ {
+ "note": "ABI Decode NULL as False",
+ "pr": 1582
+ }
+ ],
+ "timestamp": 1549373905
+ },
+ {
"version": "4.0.0",
"changes": [
{
diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md
index ed3f00158..e4b581aef 100644
--- a/packages/utils/CHANGELOG.md
+++ b/packages/utils/CHANGELOG.md
@@ -5,6 +5,18 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v4.0.2 - _February 6, 2019_
+
+ * ABI Decode NULL for all data types (#1587)
+
+## v4.0.1 - _February 5, 2019_
+
+ * ABI Decode NULL as False (#1582)
+
+## v4.0.0 - _Invalid date_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+
## v3.0.1 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/utils/package.json b/packages/utils/package.json
index b6be39210..f5b69644e 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/utils",
- "version": "3.0.1",
+ "version": "4.0.2",
"engines": {
"node": ">=6.12"
},
@@ -28,7 +28,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/utils/README.md",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/detect-node": "2.0.0",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
@@ -44,19 +44,19 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
"@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",
+ "ethereum-types": "^2.0.0",
"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/abstract_data_types/data_type.ts b/packages/utils/src/abi_encoder/abstract_data_types/data_type.ts
index f23324721..db4f02b89 100644
--- a/packages/utils/src/abi_encoder/abstract_data_types/data_type.ts
+++ b/packages/utils/src/abi_encoder/abstract_data_types/data_type.ts
@@ -47,7 +47,8 @@ export abstract class DataType {
const hasSelector = !_.isUndefined(selector);
const rawCalldata = new RawCalldata(calldata, hasSelector);
const rules_ = _.isUndefined(rules) ? constants.DEFAULT_DECODING_RULES : rules;
- const value = this.generateValue(rawCalldata, rules_);
+ const value =
+ rawCalldata.getSizeInBytes() > 0 ? this.generateValue(rawCalldata, rules_) : this.getDefaultValue(rules_);
return value;
}
@@ -71,6 +72,7 @@ export abstract class DataType {
public abstract generateCalldataBlock(value: any, parentBlock?: CalldataBlock): CalldataBlock;
public abstract generateValue(calldata: RawCalldata, rules: DecodingRules): any;
+ public abstract getDefaultValue(rules?: DecodingRules): any;
public abstract getSignatureType(): string;
public abstract isStatic(): boolean;
}
diff --git a/packages/utils/src/abi_encoder/abstract_data_types/types/set.ts b/packages/utils/src/abi_encoder/abstract_data_types/types/set.ts
index 2c6c4b0f6..d45088482 100644
--- a/packages/utils/src/abi_encoder/abstract_data_types/types/set.ts
+++ b/packages/utils/src/abi_encoder/abstract_data_types/types/set.ts
@@ -97,6 +97,27 @@ export abstract class AbstractSetDataType extends DataType {
return isStatic;
}
+ public getDefaultValue(rules?: DecodingRules): any[] | object {
+ let defaultValue: any[] | object;
+ if (this._isArray && _.isUndefined(this._arrayLength)) {
+ defaultValue = [];
+ } else if (!_.isUndefined(rules) && rules.shouldConvertStructsToObjects && !this._isArray) {
+ defaultValue = {};
+ _.each(this._memberIndexByName, (idx: number, key: string) => {
+ const member = this._members[idx];
+ const memberValue = member.getDefaultValue();
+ (defaultValue as { [key: string]: any })[key] = memberValue;
+ });
+ } else {
+ defaultValue = [];
+ _.each(this._members, (member: DataType, idx: number) => {
+ const memberValue = member.getDefaultValue();
+ (defaultValue as any[]).push(memberValue);
+ });
+ }
+ return defaultValue;
+ }
+
protected _generateCalldataBlockFromArray(value: any[], parentBlock?: CalldataBlock): SetCalldataBlock {
// Sanity check: if the set has a defined length then `value` must have the same length.
if (!_.isUndefined(this._arrayLength) && value.length !== this._arrayLength) {
diff --git a/packages/utils/src/abi_encoder/calldata/raw_calldata.ts b/packages/utils/src/abi_encoder/calldata/raw_calldata.ts
index 189841989..dbc9d4942 100644
--- a/packages/utils/src/abi_encoder/calldata/raw_calldata.ts
+++ b/packages/utils/src/abi_encoder/calldata/raw_calldata.ts
@@ -79,4 +79,9 @@ export class RawCalldata {
public getSelector(): string {
return this._selector;
}
+
+ public getSizeInBytes(): number {
+ const sizeInBytes = this._value.byteLength;
+ return sizeInBytes;
+ }
}
diff --git a/packages/utils/src/abi_encoder/evm_data_types/address.ts b/packages/utils/src/abi_encoder/evm_data_types/address.ts
index 2278830eb..7e92d3888 100644
--- a/packages/utils/src/abi_encoder/evm_data_types/address.ts
+++ b/packages/utils/src/abi_encoder/evm_data_types/address.ts
@@ -12,6 +12,7 @@ export class AddressDataType extends AbstractBlobDataType {
private static readonly _ADDRESS_SIZE_IN_BYTES = 20;
private static readonly _DECODED_ADDRESS_OFFSET_IN_BYTES =
constants.EVM_WORD_WIDTH_IN_BYTES - AddressDataType._ADDRESS_SIZE_IN_BYTES;
+ private static readonly _DEFAULT_VALUE = '0x0000000000000000000000000000000000000000';
public static matchType(type: string): boolean {
return type === SolidityTypes.Address;
@@ -43,6 +44,10 @@ export class AddressDataType extends AbstractBlobDataType {
return valueLowercase;
}
+ public getDefaultValue(): string {
+ return AddressDataType._DEFAULT_VALUE;
+ }
+
public getSignatureType(): string {
return SolidityTypes.Address;
}
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..24887c509 100644
--- a/packages/utils/src/abi_encoder/evm_data_types/bool.ts
+++ b/packages/utils/src/abi_encoder/evm_data_types/bool.ts
@@ -10,6 +10,7 @@ import { constants } from '../utils/constants';
export class BoolDataType extends AbstractBlobDataType {
private static readonly _SIZE_KNOWN_AT_COMPILE_TIME: boolean = true;
+ private static readonly _DEFAULT_VALUE: boolean = false;
public static matchType(type: string): boolean {
return type === SolidityTypes.Bool;
@@ -36,7 +37,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}`);
}
@@ -46,6 +48,10 @@ export class BoolDataType extends AbstractBlobDataType {
return value;
}
+ public getDefaultValue(): boolean {
+ return BoolDataType._DEFAULT_VALUE;
+ }
+
public getSignatureType(): string {
return SolidityTypes.Bool;
}
diff --git a/packages/utils/src/abi_encoder/evm_data_types/dynamic_bytes.ts b/packages/utils/src/abi_encoder/evm_data_types/dynamic_bytes.ts
index fa38b63c0..7a49a84b4 100644
--- a/packages/utils/src/abi_encoder/evm_data_types/dynamic_bytes.ts
+++ b/packages/utils/src/abi_encoder/evm_data_types/dynamic_bytes.ts
@@ -9,6 +9,7 @@ import { constants } from '../utils/constants';
export class DynamicBytesDataType extends AbstractBlobDataType {
private static readonly _SIZE_KNOWN_AT_COMPILE_TIME: boolean = false;
+ private static readonly _DEFAULT_VALUE = '0x';
public static matchType(type: string): boolean {
return type === SolidityTypes.Bytes;
@@ -65,6 +66,10 @@ export class DynamicBytesDataType extends AbstractBlobDataType {
return value;
}
+ public getDefaultValue(): string {
+ return DynamicBytesDataType._DEFAULT_VALUE;
+ }
+
public getSignatureType(): string {
return SolidityTypes.Bytes;
}
diff --git a/packages/utils/src/abi_encoder/evm_data_types/int.ts b/packages/utils/src/abi_encoder/evm_data_types/int.ts
index f8be1f778..02278f666 100644
--- a/packages/utils/src/abi_encoder/evm_data_types/int.ts
+++ b/packages/utils/src/abi_encoder/evm_data_types/int.ts
@@ -15,6 +15,7 @@ export class IntDataType extends AbstractBlobDataType {
private static readonly _SIZE_KNOWN_AT_COMPILE_TIME: boolean = true;
private static readonly _MAX_WIDTH: number = 256;
private static readonly _DEFAULT_WIDTH: number = IntDataType._MAX_WIDTH;
+ private static readonly _DEFAULT_VALUE = new BigNumber(0);
private readonly _width: number;
private readonly _minValue: BigNumber;
private readonly _maxValue: BigNumber;
@@ -50,13 +51,20 @@ export class IntDataType extends AbstractBlobDataType {
public decodeValue(calldata: RawCalldata): BigNumber | number {
const valueBuf = calldata.popWord();
const value = EncoderMath.safeDecodeNumericValue(valueBuf, this._minValue, this._maxValue);
- const numberOfBytesInUint8 = 8;
- if (this._width === numberOfBytesInUint8) {
+ if (this._width === constants.NUMBER_OF_BYTES_IN_INT8) {
return value.toNumber();
}
return value;
}
+ public getDefaultValue(): BigNumber | number {
+ const defaultValue = IntDataType._DEFAULT_VALUE;
+ if (this._width === constants.NUMBER_OF_BYTES_IN_INT8) {
+ return defaultValue.toNumber();
+ }
+ return defaultValue;
+ }
+
public getSignatureType(): string {
return `${SolidityTypes.Int}${this._width}`;
}
diff --git a/packages/utils/src/abi_encoder/evm_data_types/pointer.ts b/packages/utils/src/abi_encoder/evm_data_types/pointer.ts
index 250db7c64..50f68f5ea 100644
--- a/packages/utils/src/abi_encoder/evm_data_types/pointer.ts
+++ b/packages/utils/src/abi_encoder/evm_data_types/pointer.ts
@@ -18,4 +18,9 @@ export class PointerDataType extends AbstractPointerDataType {
public getSignature(isDetailed?: boolean): string {
return this._destination.getSignature(isDetailed);
}
+
+ public getDefaultValue(): any {
+ const defaultValue = this._destination.getDefaultValue();
+ return defaultValue;
+ }
}
diff --git a/packages/utils/src/abi_encoder/evm_data_types/static_bytes.ts b/packages/utils/src/abi_encoder/evm_data_types/static_bytes.ts
index cbf1957d7..a965f6796 100644
--- a/packages/utils/src/abi_encoder/evm_data_types/static_bytes.ts
+++ b/packages/utils/src/abi_encoder/evm_data_types/static_bytes.ts
@@ -58,6 +58,13 @@ export class StaticBytesDataType extends AbstractBlobDataType {
return value;
}
+ public getDefaultValue(): string {
+ const valueBufPadded = constants.EMPTY_EVM_WORD_BUFFER;
+ const valueBuf = valueBufPadded.slice(0, this._width);
+ const value = ethUtil.bufferToHex(valueBuf);
+ return value;
+ }
+
private _sanityCheckValue(value: string | Buffer): void {
if (typeof value === 'string') {
if (!_.startsWith(value, '0x')) {
diff --git a/packages/utils/src/abi_encoder/evm_data_types/string.ts b/packages/utils/src/abi_encoder/evm_data_types/string.ts
index 97ac46442..f54d739b4 100644
--- a/packages/utils/src/abi_encoder/evm_data_types/string.ts
+++ b/packages/utils/src/abi_encoder/evm_data_types/string.ts
@@ -9,6 +9,7 @@ import { constants } from '../utils/constants';
export class StringDataType extends AbstractBlobDataType {
private static readonly _SIZE_KNOWN_AT_COMPILE_TIME: boolean = false;
+ private static readonly _DEFAULT_VALUE = '';
public static matchType(type: string): boolean {
return type === SolidityTypes.String;
@@ -52,6 +53,10 @@ export class StringDataType extends AbstractBlobDataType {
return value;
}
+ public getDefaultValue(): string {
+ return StringDataType._DEFAULT_VALUE;
+ }
+
public getSignatureType(): string {
return SolidityTypes.String;
}
diff --git a/packages/utils/src/abi_encoder/evm_data_types/uint.ts b/packages/utils/src/abi_encoder/evm_data_types/uint.ts
index a82aa789e..d530606b9 100644
--- a/packages/utils/src/abi_encoder/evm_data_types/uint.ts
+++ b/packages/utils/src/abi_encoder/evm_data_types/uint.ts
@@ -16,6 +16,7 @@ export class UIntDataType extends AbstractBlobDataType {
private static readonly _MAX_WIDTH: number = 256;
private static readonly _DEFAULT_WIDTH: number = UIntDataType._MAX_WIDTH;
private static readonly _MIN_VALUE = new BigNumber(0);
+ private static readonly _DEFAULT_VALUE = new BigNumber(0);
private readonly _width: number;
private readonly _maxValue: BigNumber;
@@ -49,13 +50,20 @@ export class UIntDataType extends AbstractBlobDataType {
public decodeValue(calldata: RawCalldata): BigNumber | number {
const valueBuf = calldata.popWord();
const value = EncoderMath.safeDecodeNumericValue(valueBuf, UIntDataType._MIN_VALUE, this._maxValue);
- const numberOfBytesInUint8 = 8;
- if (this._width === numberOfBytesInUint8) {
+ if (this._width === constants.NUMBER_OF_BYTES_IN_UINT8) {
return value.toNumber();
}
return value;
}
+ public getDefaultValue(): BigNumber | number {
+ const defaultValue = UIntDataType._DEFAULT_VALUE;
+ if (this._width === constants.NUMBER_OF_BYTES_IN_UINT8) {
+ return defaultValue.toNumber();
+ }
+ return defaultValue;
+ }
+
public getSignatureType(): string {
return `${SolidityTypes.Uint}${this._width}`;
}
diff --git a/packages/utils/src/abi_encoder/utils/constants.ts b/packages/utils/src/abi_encoder/utils/constants.ts
index fc586f295..b45b5b8e8 100644
--- a/packages/utils/src/abi_encoder/utils/constants.ts
+++ b/packages/utils/src/abi_encoder/utils/constants.ts
@@ -1,3 +1,5 @@
+import * as ethUtil from 'ethereumjs-util';
+
import { DecodingRules, EncodingRules } from './rules';
export const constants = {
@@ -14,4 +16,8 @@ export const constants = {
DEFAULT_DECODING_RULES: { shouldConvertStructsToObjects: true } as DecodingRules,
DEFAULT_ENCODING_RULES: { shouldOptimize: true, shouldAnnotate: false } as EncodingRules,
/* tslint:enable no-object-literal-type-assertion */
+ EMPTY_EVM_WORD_STRING: '0x0000000000000000000000000000000000000000000000000000000000000000',
+ EMPTY_EVM_WORD_BUFFER: ethUtil.toBuffer('0x0000000000000000000000000000000000000000000000000000000000000000'),
+ NUMBER_OF_BYTES_IN_UINT8: 8,
+ NUMBER_OF_BYTES_IN_INT8: 8,
};
diff --git a/packages/utils/test/abi_encoder/abi_samples/return_value_abis.ts b/packages/utils/test/abi_encoder/abi_samples/return_value_abis.ts
index ac2124011..ad07b3d24 100644
--- a/packages/utils/test/abi_encoder/abi_samples/return_value_abis.ts
+++ b/packages/utils/test/abi_encoder/abi_samples/return_value_abis.ts
@@ -97,3 +97,28 @@ export const mixedStaticAndDynamicReturnValues: MethodAbi = {
stateMutability: 'nonpayable',
type: 'function',
};
+
+export const structuredReturnValue: MethodAbi = {
+ constant: false,
+ inputs: [],
+ name: 'fillOrder',
+ outputs: [
+ {
+ components: [
+ {
+ name: 'makerAssetFilledAmount',
+ type: 'uint256',
+ },
+ {
+ name: 'takerAssetFilledAmount',
+ type: 'uint256',
+ },
+ ],
+ name: 'fillResults',
+ type: 'tuple',
+ },
+ ],
+ payable: false,
+ stateMutability: 'nonpayable',
+ type: 'function',
+};
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..c09c0d929 100644
--- a/packages/utils/test/abi_encoder/evm_data_types_test.ts
+++ b/packages/utils/test/abi_encoder/evm_data_types_test.ts
@@ -11,6 +11,7 @@ const expect = chai.expect;
describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
const encodingRules: AbiEncoder.EncodingRules = { shouldOptimize: false }; // optimizer is tested separately.
+ const nullEncodedArgs = '0x';
describe('Array', () => {
it('Fixed size; Static elements', async () => {
// Create DataType object
@@ -207,6 +208,51 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
dataType.encode(args, encodingRules);
}).to.throw('Tried to assign NaN value');
});
+ it('Should decode NULL to default values (Fixed size; Static elements)', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'testArray', type: 'int[2]' };
+ const dataType = new AbiEncoder.Array(testDataItem);
+ const args = [new BigNumber(0), new BigNumber(0)];
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
+ it('Should decode NULL to default values (Dynamic size; Static elements)', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'testArray', type: 'int[]' };
+ const dataType = new AbiEncoder.Array(testDataItem);
+ const args: BigNumber[] = [];
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
+ it('Should decode NULL to default values (Fixed size; Dynamic elements)', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'testArray', type: 'string[2]' };
+ const dataType = new AbiEncoder.Array(testDataItem);
+ const args = ['', ''];
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
+ it('Should decode NULL to default values (Dynamic size; Dynamic elements)', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'testArray', type: 'string[]' };
+ const dataType = new AbiEncoder.Array(testDataItem);
+ const args: string[] = [];
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
+ it('Should decode NULL to default values (Dynamic Size; Multidimensional; Dynamic Elements)', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'testArray', type: 'bytes[][]' };
+ const dataType = new AbiEncoder.Array(testDataItem);
+ const args: string[][] = [];
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
});
describe('Tuple', () => {
@@ -407,6 +453,46 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
dataType.encode(args, encodingRules);
}).to.throw('Could not assign tuple to object: missing key \'field_2\' in object {"field_1":"-5"}');
});
+ it('Should decode NULL to default values (static elements only)', async () => {
+ // Create DataType object
+ const testDataItem = {
+ name: 'Tuple',
+ type: 'tuple',
+ components: [{ name: 'field_1', type: 'int32' }, { name: 'field_2', type: 'bool' }],
+ };
+ const dataType = new AbiEncoder.Tuple(testDataItem);
+ // Construct args to be encoded
+ const args = { field_1: new BigNumber(0), field_2: false };
+ // Decode Encoded Args and validate result
+ const decodingRules: AbiEncoder.DecodingRules = { shouldConvertStructsToObjects: true };
+ const decodedArgs = dataType.decode(nullEncodedArgs, decodingRules);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
+ it('Should decode NULL to default values (static and dynamic elements)', async () => {
+ // Create DataType object
+ const testDataItem = {
+ name: 'Tuple',
+ type: 'tuple',
+ components: [
+ { name: 'field_1', type: 'int32' },
+ { name: 'field_2', type: 'string' },
+ { name: 'field_3', type: 'bool' },
+ { name: 'field_4', type: 'bytes' },
+ ],
+ };
+ const dataType = new AbiEncoder.Tuple(testDataItem);
+ // Construct args to be encoded
+ const args = {
+ field_1: new BigNumber(0),
+ field_2: '',
+ field_3: false,
+ field_4: '0x',
+ };
+ // Decode Encoded Args and validate result
+ const decodingRules: AbiEncoder.DecodingRules = { shouldConvertStructsToObjects: true };
+ const decodedArgs = dataType.decode(nullEncodedArgs, decodingRules);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
});
describe('Address', () => {
@@ -450,6 +536,15 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
dataType.encode(args, encodingRules);
}).to.throw(`Invalid address: '${args}'`);
});
+ it('Should decode NULL to default value of address zero', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'Address', type: 'address' };
+ const dataType = new AbiEncoder.Address(testDataItem);
+ const args = '0x0000000000000000000000000000000000000000';
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
});
describe('Bool', () => {
@@ -489,6 +584,15 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
const argsEncodedFromSignature = dataTypeFromSignature.encode(args);
expect(argsEncodedFromSignature).to.be.deep.equal(expectedEncodedArgs);
});
+ it('Should decode NULL to default value of False', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'Boolean', type: 'bool' };
+ const dataType = new AbiEncoder.Bool(testDataItem);
+ const args = false;
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
});
describe('Integer', () => {
@@ -687,6 +791,15 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
dataType.encode(args, encodingRules);
}).to.throw();
});
+ it('Should decode NULL to default value of 0', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'Integer (256)', type: 'int' };
+ const dataType = new AbiEncoder.Int(testDataItem);
+ const args = new BigNumber(0);
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
});
describe('Unsigned Integer', () => {
@@ -849,6 +962,15 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
dataType.encode(args, encodingRules);
}).to.throw();
});
+ it('Should decode NULL to default value of 0', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'Unsigned Integer (256)', type: 'uint' };
+ const dataType = new AbiEncoder.UInt(testDataItem);
+ const args = new BigNumber(0);
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
});
describe('Static Bytes', () => {
@@ -1012,6 +1134,33 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
dataType.encode(args, encodingRules);
}).to.throw('Tried to assign 0x010, which is contains a half-byte. Use full bytes only.');
});
+ it('Should decode NULL to default value - Single Byte (byte)', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'Static Byte', type: 'byte' };
+ const dataType = new AbiEncoder.StaticBytes(testDataItem);
+ const args = '0x00';
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
+ it('Should decode NULL to default value - 4 Bytes (bytes4)', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'Static Bytes4', type: 'bytes4' };
+ const dataType = new AbiEncoder.StaticBytes(testDataItem);
+ const args = '0x00000000';
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
+ it('Should decode NULL to default value - 32 Bytes (bytes32)', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'Static Bytes32', type: 'bytes32' };
+ const dataType = new AbiEncoder.StaticBytes(testDataItem);
+ const args = '0x0000000000000000000000000000000000000000000000000000000000000000';
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
});
describe('Dynamic Bytes', () => {
@@ -1099,6 +1248,15 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
dataType.encode(args, encodingRules);
}).to.throw('Tried to assign 0x010, which is contains a half-byte. Use full bytes only.');
});
+ it('Should decode NULL to empty byte array', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'Dynamic Bytes', type: 'bytes' };
+ const dataType = new AbiEncoder.DynamicBytes(testDataItem);
+ const args = '0x';
+ // Decode Encoded Args and validate result
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
});
describe('String', () => {
@@ -1164,5 +1322,14 @@ describe('ABI Encoder: EVM Data Type Encoding/Decoding', () => {
const argsEncodedFromSignature = dataTypeFromSignature.encode(args);
expect(argsEncodedFromSignature).to.be.deep.equal(expectedEncodedArgs);
});
+ it('Should decode NULL to empty string', async () => {
+ // Create DataType object
+ const testDataItem = { name: 'String', type: 'string' };
+ const dataType = new AbiEncoder.String(testDataItem);
+ // Decode Encoded Args and validate result
+ const args = '';
+ const decodedArgs = dataType.decode(nullEncodedArgs);
+ expect(decodedArgs).to.be.deep.equal(args);
+ });
});
});
diff --git a/packages/utils/test/abi_encoder/return_values_test.ts b/packages/utils/test/abi_encoder/return_values_test.ts
index 308d11ee5..ccdac510d 100644
--- a/packages/utils/test/abi_encoder/return_values_test.ts
+++ b/packages/utils/test/abi_encoder/return_values_test.ts
@@ -1,7 +1,7 @@
import * as chai from 'chai';
import 'mocha';
-import { AbiEncoder } from '../../src/';
+import { AbiEncoder, BigNumber } from '../../src/';
import { chaiSetup } from '../utils/chai_setup';
import * as ReturnValueAbis from './abi_samples/return_value_abis';
@@ -11,67 +11,194 @@ const expect = chai.expect;
describe('ABI Encoder: Return Value Encoding/Decoding', () => {
const encodingRules: AbiEncoder.EncodingRules = { shouldOptimize: false }; // optimizer is tested separately.
- it('No Return Value', async () => {
- // Decode return value
- const method = new AbiEncoder.Method(ReturnValueAbis.noReturnValues);
- const returnValue = '0x';
- const decodedReturnValue = method.decodeReturnValues(returnValue, { shouldConvertStructsToObjects: false });
- const expectedDecodedReturnValue: any[] = [];
- expect(decodedReturnValue).to.be.deep.equal(expectedDecodedReturnValue);
- });
- it('Single static return value', async () => {
- // Generate Return Value
- const method = new AbiEncoder.Method(ReturnValueAbis.singleStaticReturnValue);
- const returnValue = ['0x01020304'];
- const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
- const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
- shouldConvertStructsToObjects: false,
- });
- // Validate decoded return value
- expect(decodedReturnValue).to.be.deep.equal(returnValue);
- });
- it('Multiple static return values', async () => {
- // Generate Return Value
- const method = new AbiEncoder.Method(ReturnValueAbis.multipleStaticReturnValues);
- const returnValue = ['0x01020304', '0x05060708'];
- const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
- const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
- shouldConvertStructsToObjects: false,
- });
- // Validate decoded return value
- expect(decodedReturnValue).to.be.deep.equal(returnValue);
- });
- it('Single dynamic return value', async () => {
- // Generate Return Value
- const method = new AbiEncoder.Method(ReturnValueAbis.singleDynamicReturnValue);
- const returnValue = ['0x01020304'];
- const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
- const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
- shouldConvertStructsToObjects: false,
- });
- // Validate decoded return value
- expect(decodedReturnValue).to.be.deep.equal(returnValue);
- });
- it('Multiple dynamic return values', async () => {
- // Generate Return Value
- const method = new AbiEncoder.Method(ReturnValueAbis.multipleDynamicReturnValues);
- const returnValue = ['0x01020304', '0x05060708'];
- const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
- const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
- shouldConvertStructsToObjects: false,
- });
- // Validate decoded return value
- expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ const nullEncodedReturnValue = '0x';
+ describe('Standard encoding/decoding', () => {
+ it('No Return Value', async () => {
+ // Decode return value
+ const method = new AbiEncoder.Method(ReturnValueAbis.noReturnValues);
+ const returnValue = '0x';
+ const decodedReturnValue = method.decodeReturnValues(returnValue, { shouldConvertStructsToObjects: false });
+ const expectedDecodedReturnValue: any[] = [];
+ expect(decodedReturnValue).to.be.deep.equal(expectedDecodedReturnValue);
+ });
+ it('Single static return value', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.singleStaticReturnValue);
+ const returnValue = ['0x01020304'];
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
+ shouldConvertStructsToObjects: false,
+ });
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Multiple static return values', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.multipleStaticReturnValues);
+ const returnValue = ['0x01020304', '0x05060708'];
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
+ shouldConvertStructsToObjects: false,
+ });
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Single dynamic return value', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.singleDynamicReturnValue);
+ const returnValue = ['0x01020304'];
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
+ shouldConvertStructsToObjects: false,
+ });
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Multiple dynamic return values', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.multipleDynamicReturnValues);
+ const returnValue = ['0x01020304', '0x05060708'];
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
+ shouldConvertStructsToObjects: false,
+ });
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Mixed static/dynamic return values', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.mixedStaticAndDynamicReturnValues);
+ const returnValue = ['0x01020304', '0x05060708'];
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
+ shouldConvertStructsToObjects: false,
+ });
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Should decode NULL as default value (single; static)', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.singleStaticReturnValue);
+ const returnValue = ['0x00000000'];
+
+ const decodedReturnValue = method.decodeReturnValues(nullEncodedReturnValue, {
+ shouldConvertStructsToObjects: false,
+ });
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Should decode NULL as default value (multiple; static)', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.multipleStaticReturnValues);
+ const returnValue = ['0x00000000', '0x00000000'];
+ const decodedReturnValue = method.decodeReturnValues(nullEncodedReturnValue, {
+ shouldConvertStructsToObjects: false,
+ });
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Should decode NULL as default value (single; dynamic)', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.singleDynamicReturnValue);
+ const returnValue = ['0x'];
+ const decodedReturnValue = method.decodeReturnValues(nullEncodedReturnValue, {
+ shouldConvertStructsToObjects: false,
+ });
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
});
- it('Mixed static/dynamic return values', async () => {
- // Generate Return Value
- const method = new AbiEncoder.Method(ReturnValueAbis.mixedStaticAndDynamicReturnValues);
- const returnValue = ['0x01020304', '0x05060708'];
- const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
- const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, {
- shouldConvertStructsToObjects: false,
- });
- // Validate decoded return value
- expect(decodedReturnValue).to.be.deep.equal(returnValue);
+
+ describe('Strict encoding/decoding', () => {
+ it('No Return Value', async () => {
+ // Decode return value
+ const method = new AbiEncoder.Method(ReturnValueAbis.noReturnValues);
+ const returnValue = '0x';
+ const decodedReturnValue = method.strictDecodeReturnValue<void>(returnValue);
+ const expectedDecodedReturnValue = undefined;
+ expect(decodedReturnValue).to.be.deep.equal(expectedDecodedReturnValue);
+ });
+ it('Single static return value', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.singleStaticReturnValue);
+ const returnValue = ['0x01020304'];
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.strictDecodeReturnValue<string>(encodedReturnValue);
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue[0]);
+ });
+ it('Multiple static return values', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.multipleStaticReturnValues);
+ const returnValue = ['0x01020304', '0x05060708'];
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.strictDecodeReturnValue<[string, string]>(encodedReturnValue);
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Single dynamic return value', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.singleDynamicReturnValue);
+ const returnValue = ['0x01020304'];
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.strictDecodeReturnValue<string>(encodedReturnValue);
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue[0]);
+ });
+ it('Multiple dynamic return values', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.multipleDynamicReturnValues);
+ const returnValue = ['0x01020304', '0x05060708'];
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.strictDecodeReturnValue<[string, string]>(encodedReturnValue);
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Struct should include fields', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.structuredReturnValue);
+ const returnValue = {
+ fillResults: {
+ makerAssetFilledAmount: new BigNumber(50),
+ takerAssetFilledAmount: new BigNumber(40),
+ },
+ };
+ const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
+ const decodedReturnValue = method.strictDecodeReturnValue<{
+ makerAssetFilledAmount: BigNumber;
+ takerAssetFilledAmount: BigNumber;
+ }>(encodedReturnValue);
+ // Validate decoded return value
+ // Note that only the contents of `fillResults`, not the key itself, is decoded.
+ // This is by design, as only a struct's contents are encoded and returned by a funciton call.
+ expect(decodedReturnValue).to.be.deep.equal(returnValue.fillResults);
+ });
+ it('Should decode NULL as default value (single; static)', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.singleStaticReturnValue);
+ const returnValue = '0x00000000';
+ const encodedReturnValue = '0x';
+ const decodedReturnValue = method.strictDecodeReturnValue<string>(encodedReturnValue);
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Should decode NULL as default value (multiple; static)', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.multipleStaticReturnValues);
+ const returnValue = ['0x00000000', '0x00000000'];
+ const encodedReturnValue = '0x';
+ const decodedReturnValue = method.strictDecodeReturnValue<[string, string]>(encodedReturnValue);
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
+ it('Should decode NULL as default value (single; dynamic)', async () => {
+ // Generate Return Value
+ const method = new AbiEncoder.Method(ReturnValueAbis.singleDynamicReturnValue);
+ const returnValue = '0x';
+ const encodedReturnValue = '0x';
+ const decodedReturnValue = method.strictDecodeReturnValue<string>(encodedReturnValue);
+ // Validate decoded return value
+ expect(decodedReturnValue).to.be.deep.equal(returnValue);
+ });
});
});
diff --git a/packages/web3-wrapper/CHANGELOG.json b/packages/web3-wrapper/CHANGELOG.json
index 4a639f662..e9e85be24 100644
--- a/packages/web3-wrapper/CHANGELOG.json
+++ b/packages/web3-wrapper/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1549452781,
+ "version": "4.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "4.0.0",
"changes": [
{
@@ -10,7 +19,8 @@
"note": "Update ganache-core to v2.3.3",
"pr": 1518
}
- ]
+ ],
+ "timestamp": 1549373905
},
{
"timestamp": 1547561734,
diff --git a/packages/web3-wrapper/CHANGELOG.md b/packages/web3-wrapper/CHANGELOG.md
index 5850c5474..82b646a04 100644
--- a/packages/web3-wrapper/CHANGELOG.md
+++ b/packages/web3-wrapper/CHANGELOG.md
@@ -5,6 +5,15 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v4.0.1 - _February 6, 2019_
+
+ * Dependencies updated
+
+## v4.0.0 - _February 5, 2019_
+
+ * Upgrade the bignumber.js to v8.0.2 (#1517)
+ * Update ganache-core to v2.3.3 (#1518)
+
## v3.2.4 - _January 15, 2019_
* Dependencies updated
diff --git a/packages/web3-wrapper/package.json b/packages/web3-wrapper/package.json
index f28cc36ca..967d2bc34 100644
--- a/packages/web3-wrapper/package.json
+++ b/packages/web3-wrapper/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/web3-wrapper",
- "version": "3.2.4",
+ "version": "4.0.1",
"engines": {
"node": ">=6.12"
},
@@ -36,7 +36,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/web3-wrapper/README.md",
"devDependencies": {
- "@0x/tslint-config": "^2.0.2",
+ "@0x/tslint-config": "^3.0.0",
"@types/ganache-core": "^2.1.2",
"@types/lodash": "4.14.104",
"chai": "^4.0.1",
@@ -54,14 +54,14 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/assert": "^1.0.23",
- "@0x/json-schemas": "^2.1.7",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "ethereum-types": "^1.1.6",
+ "@0x/assert": "^2.0.1",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "ethereum-types": "^2.0.0",
"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/less/all.less b/packages/website/less/all.less
index 5d1dccc98..d288b182b 100644
--- a/packages/website/less/all.less
+++ b/packages/website/less/all.less
@@ -88,13 +88,6 @@ code {
color: #1d5cde; // linkBlue
}
- h1,
- h2,
- h3,
- h4 {
- padding-top: 15px;
- }
-
p,
blockquote,
ol,
diff --git a/packages/website/package.json b/packages/website/package.json
index ce7ed395f..77295d4de 100644
--- a/packages/website/package.json
+++ b/packages/website/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/website",
- "version": "0.0.67",
+ "version": "0.0.70",
"engines": {
"node": ">=6.12"
},
@@ -20,18 +20,18 @@
"author": "Fabio Berger",
"license": "Apache-2.0",
"dependencies": {
- "@0x/asset-buyer": "^4.0.2",
- "@0x/contract-addresses": "^2.2.0",
- "@0x/contract-wrappers": "^5.0.1",
- "@0x/json-schemas": "^2.1.7",
- "@0x/order-utils": "^3.1.2",
- "@0x/react-docs": "^1.0.25",
- "@0x/react-shared": "^1.1.2",
- "@0x/subproviders": "^2.1.11",
- "@0x/types": "^1.5.2",
- "@0x/typescript-typings": "^3.0.8",
- "@0x/utils": "^3.0.1",
- "@0x/web3-wrapper": "^3.2.4",
+ "@0x/asset-buyer": "^5.0.2",
+ "@0x/contract-addresses": "^2.2.1",
+ "@0x/contract-wrappers": "^7.0.1",
+ "@0x/json-schemas": "^3.0.1",
+ "@0x/order-utils": "^6.0.0",
+ "@0x/react-docs": "^2.0.2",
+ "@0x/react-shared": "^2.0.2",
+ "@0x/subproviders": "^3.0.1",
+ "@0x/types": "^2.0.1",
+ "@0x/typescript-typings": "^4.0.0",
+ "@0x/utils": "^4.0.2",
+ "@0x/web3-wrapper": "^4.0.1",
"@reach/dialog": "^0.1.2",
"@types/react-lazyload": "^2.3.1",
"@types/react-loadable": "^5.4.2",
@@ -42,7 +42,7 @@
"blockies": "^0.0.2",
"bowser": "^1.9.3",
"deep-equal": "^1.0.1",
- "ethereum-types": "^1.1.6",
+ "ethereum-types": "^2.0.0",
"ethereumjs-util": "^5.1.1",
"find-versions": "^2.0.0",
"jsonschema": "^1.2.0",
@@ -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",
diff --git a/packages/website/ts/components/mobileNav.tsx b/packages/website/ts/components/mobileNav.tsx
index d43bbe50e..1aa826755 100644
--- a/packages/website/ts/components/mobileNav.tsx
+++ b/packages/website/ts/components/mobileNav.tsx
@@ -6,6 +6,7 @@ import { Link } from 'react-router-dom';
import { WrapGrid, WrapProps } from 'ts/components/newLayout';
import { WebsitePaths } from 'ts/types';
+import { constants } from 'ts/utils/constants';
interface Props {
isToggled: boolean;
@@ -41,7 +42,7 @@ export class MobileNav extends React.PureComponent<Props> {
<Link to={WebsitePaths.AboutMission}>About</Link>
</li>
<li>
- <a href="https://blog.0xproject.com/latest" target="_blank">
+ <a href={constants.URL_BLOG} target="_blank">
Blog
</a>
</li>
diff --git a/packages/website/ts/utils/constants.ts b/packages/website/ts/utils/constants.ts
index ada8de549..03c1a0b83 100644
--- a/packages/website/ts/utils/constants.ts
+++ b/packages/website/ts/utils/constants.ts
@@ -74,7 +74,7 @@ export const constants = {
URL_ANGELLIST: 'https://angel.co/0xproject/jobs',
URL_APACHE_LICENSE: 'http://www.apache.org/licenses/LICENSE-2.0',
URL_BITLY_API: 'https://api-ssl.bitly.com',
- URL_BLOG: 'https://blog.0xproject.com/latest',
+ URL_BLOG: 'https://blog.0xproject.com',
URL_DISCOURSE_FORUM: 'https://forum.0x.org',
URL_ECOSYSTEM_APPLY: 'https://0x.smapply.io/',
URL_ECOSYSTEM_BLOG_POST: 'https://blog.0xproject.com/announcing-the-0x-ecosystem-acceleration-program-89d1cb89d565',