aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfragosti <francesco.agosti93@gmail.com>2018-11-15 06:39:23 +0800
committerfragosti <francesco.agosti93@gmail.com>2018-11-15 06:39:23 +0800
commit1aae112d0e2c2b6c7ac16b491aa8345fe2aff486 (patch)
tree25457b39e170451ecbc56fe03918ef6e10b43d5c
parent80e7e84a06319a79a757406b58df318cce3dfa08 (diff)
parent504f4d9eb99589b4d9071a6f13cea9dcc11f226d (diff)
downloaddexon-sol-tools-1aae112d0e2c2b6c7ac16b491aa8345fe2aff486.tar
dexon-sol-tools-1aae112d0e2c2b6c7ac16b491aa8345fe2aff486.tar.gz
dexon-sol-tools-1aae112d0e2c2b6c7ac16b491aa8345fe2aff486.tar.bz2
dexon-sol-tools-1aae112d0e2c2b6c7ac16b491aa8345fe2aff486.tar.lz
dexon-sol-tools-1aae112d0e2c2b6c7ac16b491aa8345fe2aff486.tar.xz
dexon-sol-tools-1aae112d0e2c2b6c7ac16b491aa8345fe2aff486.tar.zst
dexon-sol-tools-1aae112d0e2c2b6c7ac16b491aa8345fe2aff486.zip
Merge branch 'development' of https://github.com/0xProject/0x-monorepo into feature/instant/different-install-wallet-copy-for-mobile
-rw-r--r--.prettierignore1
-rw-r--r--packages/0x.js/CHANGELOG.json9
-rw-r--r--packages/0x.js/CHANGELOG.md4
-rw-r--r--packages/0x.js/package.json26
-rw-r--r--packages/abi-gen-wrappers/CHANGELOG.json9
-rw-r--r--packages/abi-gen-wrappers/CHANGELOG.md4
-rw-r--r--packages/abi-gen-wrappers/package.json10
-rw-r--r--packages/abi-gen/CHANGELOG.json9
-rw-r--r--packages/abi-gen/CHANGELOG.md4
-rw-r--r--packages/abi-gen/package.json4
-rw-r--r--packages/assert/CHANGELOG.json9
-rw-r--r--packages/assert/CHANGELOG.md4
-rw-r--r--packages/assert/package.json6
-rw-r--r--packages/asset-buyer/CHANGELOG.json3
-rw-r--r--packages/asset-buyer/CHANGELOG.md4
-rw-r--r--packages/asset-buyer/package.json18
-rw-r--r--packages/base-contract/CHANGELOG.json9
-rw-r--r--packages/base-contract/CHANGELOG.md4
-rw-r--r--packages/base-contract/package.json6
-rw-r--r--packages/connect/CHANGELOG.json9
-rw-r--r--packages/connect/CHANGELOG.md4
-rw-r--r--packages/connect/package.json10
-rw-r--r--packages/contract-wrappers/CHANGELOG.json9
-rw-r--r--packages/contract-wrappers/CHANGELOG.md4
-rw-r--r--packages/contract-wrappers/package.json22
-rw-r--r--packages/contracts/package.json20
-rw-r--r--packages/dev-tools-pages/package.json4
-rw-r--r--packages/dev-utils/CHANGELOG.json9
-rw-r--r--packages/dev-utils/CHANGELOG.md4
-rw-r--r--packages/dev-utils/package.json8
-rw-r--r--packages/fill-scenarios/CHANGELOG.json9
-rw-r--r--packages/fill-scenarios/CHANGELOG.md4
-rw-r--r--packages/fill-scenarios/package.json12
-rw-r--r--packages/instant/package.json16
-rw-r--r--packages/instant/src/components/erc20_token_selector.tsx7
-rw-r--r--packages/instant/src/components/instant_heading.tsx7
-rw-r--r--packages/instant/src/components/ui/container.tsx4
-rw-r--r--packages/instant/src/components/ui/input.tsx1
-rw-r--r--packages/instant/src/components/zero_ex_instant_container.tsx2
-rw-r--r--packages/json-schemas/CHANGELOG.json9
-rw-r--r--packages/json-schemas/CHANGELOG.md4
-rw-r--r--packages/json-schemas/package.json4
-rw-r--r--packages/metacoin/package.json18
-rw-r--r--packages/migrations/CHANGELOG.json9
-rw-r--r--packages/migrations/CHANGELOG.md4
-rw-r--r--packages/migrations/package.json18
-rw-r--r--packages/order-utils/CHANGELOG.json9
-rw-r--r--packages/order-utils/CHANGELOG.md4
-rw-r--r--packages/order-utils/package.json16
-rw-r--r--packages/order-watcher/CHANGELOG.json11
-rw-r--r--packages/order-watcher/CHANGELOG.md4
-rw-r--r--packages/order-watcher/package.json24
-rw-r--r--packages/order-watcher/src/order_watcher/dependent_order_hashes_tracker.ts5
-rw-r--r--packages/react-docs/CHANGELOG.json9
-rw-r--r--packages/react-docs/CHANGELOG.md4
-rw-r--r--packages/react-docs/package.json8
-rw-r--r--packages/react-shared/CHANGELOG.json9
-rw-r--r--packages/react-shared/CHANGELOG.md4
-rw-r--r--packages/react-shared/package.json4
-rw-r--r--packages/sol-compiler/CHANGELOG.json9
-rw-r--r--packages/sol-compiler/CHANGELOG.md4
-rw-r--r--packages/sol-compiler/package.json12
-rw-r--r--packages/sol-cov/CHANGELOG.json9
-rw-r--r--packages/sol-cov/CHANGELOG.md4
-rw-r--r--packages/sol-cov/package.json12
-rw-r--r--packages/sol-doc/CHANGELOG.json9
-rw-r--r--packages/sol-doc/CHANGELOG.md4
-rw-r--r--packages/sol-doc/package.json6
-rw-r--r--packages/sra-spec/CHANGELOG.json9
-rw-r--r--packages/sra-spec/CHANGELOG.md4
-rw-r--r--packages/sra-spec/package.json4
-rw-r--r--packages/subproviders/CHANGELOG.json9
-rw-r--r--packages/subproviders/CHANGELOG.md4
-rw-r--r--packages/subproviders/package.json8
-rw-r--r--packages/testnet-faucets/package.json10
-rw-r--r--packages/utils/CHANGELOG.json9
-rw-r--r--packages/utils/CHANGELOG.md4
-rw-r--r--packages/utils/package.json2
-rw-r--r--packages/web3-wrapper/CHANGELOG.json9
-rw-r--r--packages/web3-wrapper/CHANGELOG.md4
-rw-r--r--packages/web3-wrapper/package.json8
-rw-r--r--packages/website/package.json18
-rw-r--r--python-packages/order_utils/.pylintrc3
-rwxr-xr-xpython-packages/order_utils/setup.py7
-rw-r--r--python-packages/order_utils/src/index.rst9
-rw-r--r--python-packages/order_utils/src/zero_ex/dev_utils/abi_utils.py1
-rw-r--r--python-packages/order_utils/src/zero_ex/dev_utils/type_assertions.py31
-rw-r--r--python-packages/order_utils/src/zero_ex/json_schemas/__init__.py61
l---------python-packages/order_utils/src/zero_ex/json_schemas/schemas1
-rw-r--r--python-packages/order_utils/src/zero_ex/order_utils/__init__.py376
-rw-r--r--python-packages/order_utils/src/zero_ex/order_utils/asset_data_utils.py4
-rw-r--r--python-packages/order_utils/src/zero_ex/order_utils/signature_utils.py75
-rw-r--r--python-packages/order_utils/stubs/jsonschema/__init__.pyi5
-rw-r--r--python-packages/order_utils/stubs/jsonschema/exceptions.pyi0
-rw-r--r--python-packages/order_utils/stubs/web3/__init__.pyi6
-rw-r--r--python-packages/order_utils/stubs/web3/providers/__init__.pyi0
-rw-r--r--python-packages/order_utils/stubs/web3/providers/base.pyi2
-rw-r--r--python-packages/order_utils/test/test_doctest.py1
-rw-r--r--python-packages/order_utils/test/test_generate_order_hash_hex.py10
-rw-r--r--python-packages/order_utils/test/test_signature_utils.py2
100 files changed, 902 insertions, 348 deletions
diff --git a/.prettierignore b/.prettierignore
index 7ef0f6735..db389bdb9 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -6,6 +6,7 @@ lib
/packages/contract-artifacts/artifacts
/python-packages/order_utils/src/zero_ex/contract_artifacts/artifacts
/packages/json-schemas/schemas
+/python-packages/order_utils/src/zero_ex/json_schemas/schemas
/packages/metacoin/src/contract_wrappers
/packages/metacoin/artifacts
/packages/sra-spec/public/
diff --git a/packages/0x.js/CHANGELOG.json b/packages/0x.js/CHANGELOG.json
index d8b99b7b4..0321ee200 100644
--- a/packages/0x.js/CHANGELOG.json
+++ b/packages/0x.js/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "2.0.4",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "2.0.3",
"changes": [
diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md
index 46ec1ac5b..2467311bf 100644
--- a/packages/0x.js/CHANGELOG.md
+++ b/packages/0x.js/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.4 - _November 14, 2018_
+
+ * Dependencies updated
+
## v2.0.3 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json
index c0f1d15d3..755ff7512 100644
--- a/packages/0x.js/package.json
+++ b/packages/0x.js/package.json
@@ -1,6 +1,6 @@
{
"name": "0x.js",
- "version": "2.0.3",
+ "version": "2.0.4",
"engines": {
"node": ">=6.12"
},
@@ -42,11 +42,11 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@0x/abi-gen": "^1.0.15",
- "@0x/abi-gen-wrappers": "^1.0.4",
+ "@0x/abi-gen": "^1.0.16",
+ "@0x/abi-gen-wrappers": "^1.0.5",
"@0x/contract-addresses": "^1.1.0",
- "@0x/dev-utils": "^1.0.16",
- "@0x/migrations": "^2.0.3",
+ "@0x/dev-utils": "^1.0.17",
+ "@0x/migrations": "^2.0.4",
"@0x/tslint-config": "^1.0.10",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
@@ -73,16 +73,16 @@
"webpack": "^4.20.2"
},
"dependencies": {
- "@0x/assert": "^1.0.16",
- "@0x/base-contract": "^3.0.5",
- "@0x/contract-wrappers": "^4.0.1",
- "@0x/order-utils": "^3.0.1",
- "@0x/order-watcher": "^2.2.3",
- "@0x/subproviders": "^2.1.3",
+ "@0x/assert": "^1.0.17",
+ "@0x/base-contract": "^3.0.6",
+ "@0x/contract-wrappers": "^4.0.2",
+ "@0x/order-utils": "^3.0.2",
+ "@0x/order-watcher": "^2.2.4",
+ "@0x/subproviders": "^2.1.4",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"@types/web3-provider-engine": "^14.0.0",
"ethereum-types": "^1.1.2",
"ethers": "~4.0.4",
diff --git a/packages/abi-gen-wrappers/CHANGELOG.json b/packages/abi-gen-wrappers/CHANGELOG.json
index 9658c0377..fff2bc41e 100644
--- a/packages/abi-gen-wrappers/CHANGELOG.json
+++ b/packages/abi-gen-wrappers/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.0.5",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "1.0.4",
"changes": [
diff --git a/packages/abi-gen-wrappers/CHANGELOG.md b/packages/abi-gen-wrappers/CHANGELOG.md
index 45b91ad56..4dea965f1 100644
--- a/packages/abi-gen-wrappers/CHANGELOG.md
+++ b/packages/abi-gen-wrappers/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.5 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.0.4 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/abi-gen-wrappers/package.json b/packages/abi-gen-wrappers/package.json
index 9d7833c7b..7236cf6ff 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": "1.0.4",
+ "version": "1.0.5",
"engines": {
"node": ">=6.12"
},
@@ -30,17 +30,17 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen-wrappers/README.md",
"devDependencies": {
- "@0x/abi-gen": "^1.0.15",
+ "@0x/abi-gen": "^1.0.16",
"@0x/tslint-config": "^1.0.10",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"ethereum-types": "^1.1.2",
"ethers": "~4.0.4",
"lodash": "^4.17.5",
"shx": "^0.2.2"
},
"dependencies": {
- "@0x/base-contract": "^3.0.5"
+ "@0x/base-contract": "^3.0.6"
},
"publishConfig": {
"access": "public"
diff --git a/packages/abi-gen/CHANGELOG.json b/packages/abi-gen/CHANGELOG.json
index 658a997f4..1735c6b53 100644
--- a/packages/abi-gen/CHANGELOG.json
+++ b/packages/abi-gen/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.0.16",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "1.0.15",
"changes": [
{
diff --git a/packages/abi-gen/CHANGELOG.md b/packages/abi-gen/CHANGELOG.md
index 21fda1656..23e2f8914 100644
--- a/packages/abi-gen/CHANGELOG.md
+++ b/packages/abi-gen/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.16 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.0.15 - _November 9, 2018_
* Dependencies updated
diff --git a/packages/abi-gen/package.json b/packages/abi-gen/package.json
index 5367c9c29..f69d24116 100644
--- a/packages/abi-gen/package.json
+++ b/packages/abi-gen/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/abi-gen",
- "version": "1.0.15",
+ "version": "1.0.16",
"engines": {
"node": ">=6.12"
},
@@ -32,7 +32,7 @@
"homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen/README.md",
"dependencies": {
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
+ "@0x/utils": "^2.0.5",
"chalk": "^2.3.0",
"ethereum-types": "^1.1.2",
"glob": "^7.1.2",
diff --git a/packages/assert/CHANGELOG.json b/packages/assert/CHANGELOG.json
index 67c14f68f..2b4a3e7a1 100644
--- a/packages/assert/CHANGELOG.json
+++ b/packages/assert/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.0.17",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542028948,
"version": "1.0.16",
"changes": [
diff --git a/packages/assert/CHANGELOG.md b/packages/assert/CHANGELOG.md
index 01b1dbbb5..66f0971c1 100644
--- a/packages/assert/CHANGELOG.md
+++ b/packages/assert/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.17 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.0.16 - _November 12, 2018_
* Dependencies updated
diff --git a/packages/assert/package.json b/packages/assert/package.json
index 1db886737..ec093a5be 100644
--- a/packages/assert/package.json
+++ b/packages/assert/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/assert",
- "version": "1.0.16",
+ "version": "1.0.17",
"engines": {
"node": ">=6.12"
},
@@ -44,9 +44,9 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/json-schemas": "^2.1.0",
+ "@0x/json-schemas": "^2.1.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
+ "@0x/utils": "^2.0.5",
"lodash": "^4.17.5",
"valid-url": "^1.0.9"
},
diff --git a/packages/asset-buyer/CHANGELOG.json b/packages/asset-buyer/CHANGELOG.json
index 826b6150d..0e4623d05 100644
--- a/packages/asset-buyer/CHANGELOG.json
+++ b/packages/asset-buyer/CHANGELOG.json
@@ -6,7 +6,8 @@
"note": "update `getBuyQuoteAsync` to return eth spent on assets instead of per unit amount",
"pr": 1252
}
- ]
+ ],
+ "timestamp": 1542208198
},
{
"timestamp": 1542134075,
diff --git a/packages/asset-buyer/CHANGELOG.md b/packages/asset-buyer/CHANGELOG.md
index e10a42136..d6013e53e 100644
--- a/packages/asset-buyer/CHANGELOG.md
+++ b/packages/asset-buyer/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.0 - _November 14, 2018_
+
+ * update `getBuyQuoteAsync` to return eth spent on assets instead of per unit amount (#1252)
+
## v2.2.2 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/asset-buyer/package.json b/packages/asset-buyer/package.json
index 2b577a5e2..fad33476b 100644
--- a/packages/asset-buyer/package.json
+++ b/packages/asset-buyer/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/asset-buyer",
- "version": "2.2.2",
+ "version": "3.0.0",
"engines": {
"node": ">=6.12"
},
@@ -36,16 +36,16 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/asset-buyer/README.md",
"dependencies": {
- "@0x/assert": "^1.0.16",
- "@0x/connect": "^3.0.5",
- "@0x/contract-wrappers": "^4.0.1",
- "@0x/json-schemas": "^2.1.0",
- "@0x/order-utils": "^3.0.1",
- "@0x/subproviders": "^2.1.3",
+ "@0x/assert": "^1.0.17",
+ "@0x/connect": "^3.0.6",
+ "@0x/contract-wrappers": "^4.0.2",
+ "@0x/json-schemas": "^2.1.1",
+ "@0x/order-utils": "^3.0.2",
+ "@0x/subproviders": "^2.1.4",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"ethereum-types": "^1.1.2",
"lodash": "^4.17.10"
},
diff --git a/packages/base-contract/CHANGELOG.json b/packages/base-contract/CHANGELOG.json
index da86b840b..dc30ac076 100644
--- a/packages/base-contract/CHANGELOG.json
+++ b/packages/base-contract/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "3.0.6",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "3.0.5",
"changes": [
diff --git a/packages/base-contract/CHANGELOG.md b/packages/base-contract/CHANGELOG.md
index 21dcbb8dc..cf1b80b6d 100644
--- a/packages/base-contract/CHANGELOG.md
+++ b/packages/base-contract/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.6 - _November 14, 2018_
+
+ * Dependencies updated
+
## v3.0.5 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/base-contract/package.json b/packages/base-contract/package.json
index fb418d6fc..b1cdc3cc6 100644
--- a/packages/base-contract/package.json
+++ b/packages/base-contract/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/base-contract",
- "version": "3.0.5",
+ "version": "3.0.6",
"engines": {
"node": ">=6.12"
},
@@ -41,8 +41,8 @@
},
"dependencies": {
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"ethereum-types": "^1.1.2",
"ethers": "~4.0.4",
"lodash": "^4.17.5"
diff --git a/packages/connect/CHANGELOG.json b/packages/connect/CHANGELOG.json
index 3c86284d3..6960e1d97 100644
--- a/packages/connect/CHANGELOG.json
+++ b/packages/connect/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "3.0.6",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "3.0.5",
"changes": [
diff --git a/packages/connect/CHANGELOG.md b/packages/connect/CHANGELOG.md
index 2ce218821..13afad09b 100644
--- a/packages/connect/CHANGELOG.md
+++ b/packages/connect/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.6 - _November 14, 2018_
+
+ * Dependencies updated
+
## v3.0.5 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/connect/package.json b/packages/connect/package.json
index fd44fe44a..8e3f3ac8f 100644
--- a/packages/connect/package.json
+++ b/packages/connect/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/connect",
- "version": "3.0.5",
+ "version": "3.0.6",
"engines": {
"node": ">=6.12"
},
@@ -44,12 +44,12 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/connect/README.md",
"dependencies": {
- "@0x/assert": "^1.0.16",
- "@0x/json-schemas": "^2.1.0",
- "@0x/order-utils": "^3.0.1",
+ "@0x/assert": "^1.0.17",
+ "@0x/json-schemas": "^2.1.1",
+ "@0x/order-utils": "^3.0.2",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
+ "@0x/utils": "^2.0.5",
"lodash": "^4.17.5",
"query-string": "^5.0.1",
"sinon": "^4.0.0",
diff --git a/packages/contract-wrappers/CHANGELOG.json b/packages/contract-wrappers/CHANGELOG.json
index a454a067d..fbf3972a9 100644
--- a/packages/contract-wrappers/CHANGELOG.json
+++ b/packages/contract-wrappers/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "4.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "4.0.1",
"changes": [
diff --git a/packages/contract-wrappers/CHANGELOG.md b/packages/contract-wrappers/CHANGELOG.md
index 4352f4ecd..eca1b4633 100644
--- a/packages/contract-wrappers/CHANGELOG.md
+++ b/packages/contract-wrappers/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v4.0.2 - _November 14, 2018_
+
+ * Dependencies updated
+
## v4.0.1 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json
index 678f42fde..2d6b4e3f8 100644
--- a/packages/contract-wrappers/package.json
+++ b/packages/contract-wrappers/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/contract-wrappers",
- "version": "4.0.1",
+ "version": "4.0.2",
"description": "Smart TS wrappers for 0x smart contracts",
"keywords": [
"0xproject",
@@ -37,9 +37,9 @@
"node": ">=6.0.0"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.16",
- "@0x/migrations": "^2.0.3",
- "@0x/subproviders": "^2.1.3",
+ "@0x/dev-utils": "^1.0.17",
+ "@0x/migrations": "^2.0.4",
+ "@0x/subproviders": "^2.1.4",
"@0x/tslint-config": "^1.0.10",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
@@ -65,17 +65,17 @@
"web3-provider-engine": "14.0.6"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^1.0.4",
- "@0x/assert": "^1.0.16",
+ "@0x/abi-gen-wrappers": "^1.0.5",
+ "@0x/assert": "^1.0.17",
"@0x/contract-addresses": "^1.1.0",
"@0x/contract-artifacts": "^1.1.0",
- "@0x/fill-scenarios": "^1.0.11",
- "@0x/json-schemas": "^2.1.0",
- "@0x/order-utils": "^3.0.1",
+ "@0x/fill-scenarios": "^1.0.12",
+ "@0x/json-schemas": "^2.1.1",
+ "@0x/order-utils": "^3.0.2",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"ethereum-types": "^1.1.2",
"ethereumjs-blockstream": "6.0.0",
"ethereumjs-util": "^5.1.1",
diff --git a/packages/contracts/package.json b/packages/contracts/package.json
index 7ea31d20c..c87e2e95b 100644
--- a/packages/contracts/package.json
+++ b/packages/contracts/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "contracts",
- "version": "2.1.53",
+ "version": "2.1.54",
"engines": {
"node": ">=6.12"
},
@@ -45,11 +45,11 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/contracts/README.md",
"devDependencies": {
- "@0x/abi-gen": "^1.0.15",
- "@0x/dev-utils": "^1.0.16",
- "@0x/sol-compiler": "^1.1.11",
- "@0x/sol-cov": "^2.1.11",
- "@0x/subproviders": "^2.1.3",
+ "@0x/abi-gen": "^1.0.16",
+ "@0x/dev-utils": "^1.0.17",
+ "@0x/sol-compiler": "^1.1.12",
+ "@0x/sol-cov": "^2.1.12",
+ "@0x/subproviders": "^2.1.4",
"@0x/tslint-config": "^1.0.10",
"@types/bn.js": "^4.11.0",
"@types/ethereumjs-abi": "^0.6.0",
@@ -71,12 +71,12 @@
"yargs": "^10.0.3"
},
"dependencies": {
- "@0x/base-contract": "^3.0.5",
- "@0x/order-utils": "^3.0.1",
+ "@0x/base-contract": "^3.0.6",
+ "@0x/order-utils": "^3.0.2",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"@types/js-combinatorics": "^0.5.29",
"bn.js": "^4.11.8",
"ethereum-types": "^1.1.2",
diff --git a/packages/dev-tools-pages/package.json b/packages/dev-tools-pages/package.json
index 01c3c3514..e6d954f15 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.5",
+ "version": "0.0.6",
"engines": {
"node": ">=6.12"
},
@@ -16,7 +16,7 @@
},
"license": "Apache-2.0",
"dependencies": {
- "@0x/react-shared": "^1.0.20",
+ "@0x/react-shared": "^1.0.21",
"basscss": "^8.0.3",
"bowser": "^1.9.3",
"less": "^2.7.2",
diff --git a/packages/dev-utils/CHANGELOG.json b/packages/dev-utils/CHANGELOG.json
index 82b988c7b..d6cdd1c5a 100644
--- a/packages/dev-utils/CHANGELOG.json
+++ b/packages/dev-utils/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.0.17",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "1.0.16",
"changes": [
diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md
index 134667db2..4becadf81 100644
--- a/packages/dev-utils/CHANGELOG.md
+++ b/packages/dev-utils/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.17 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.0.16 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json
index aef64e9c1..3db391131 100644
--- a/packages/dev-utils/package.json
+++ b/packages/dev-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/dev-utils",
- "version": "1.0.16",
+ "version": "1.0.17",
"engines": {
"node": ">=6.12"
},
@@ -41,11 +41,11 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/subproviders": "^2.1.3",
+ "@0x/subproviders": "^2.1.4",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"@types/web3-provider-engine": "^14.0.0",
"chai": "^4.0.1",
"ethereum-types": "^1.1.2",
diff --git a/packages/fill-scenarios/CHANGELOG.json b/packages/fill-scenarios/CHANGELOG.json
index 9b0a4ba92..deeae5f5d 100644
--- a/packages/fill-scenarios/CHANGELOG.json
+++ b/packages/fill-scenarios/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.0.12",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "1.0.11",
"changes": [
diff --git a/packages/fill-scenarios/CHANGELOG.md b/packages/fill-scenarios/CHANGELOG.md
index 8812c7ded..c8bd402de 100644
--- a/packages/fill-scenarios/CHANGELOG.md
+++ b/packages/fill-scenarios/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.12 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.0.11 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/fill-scenarios/package.json b/packages/fill-scenarios/package.json
index 725bf68cf..2d9bff0e7 100644
--- a/packages/fill-scenarios/package.json
+++ b/packages/fill-scenarios/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/fill-scenarios",
- "version": "1.0.11",
+ "version": "1.0.12",
"description": "0x order fill scenario generator",
"main": "lib/index.js",
"types": "lib/index.d.ts",
@@ -28,14 +28,14 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^1.0.4",
- "@0x/base-contract": "^3.0.5",
+ "@0x/abi-gen-wrappers": "^1.0.5",
+ "@0x/base-contract": "^3.0.6",
"@0x/contract-artifacts": "^1.1.0",
- "@0x/order-utils": "^3.0.1",
+ "@0x/order-utils": "^3.0.2",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"ethereum-types": "^1.1.2",
"ethers": "~4.0.4",
"lodash": "^4.17.5"
diff --git a/packages/instant/package.json b/packages/instant/package.json
index aa9157bcc..3ad043c2b 100644
--- a/packages/instant/package.json
+++ b/packages/instant/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/instant",
- "version": "0.0.6",
+ "version": "0.0.7",
"engines": {
"node": ">=6.12"
},
@@ -45,16 +45,16 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/instant/README.md",
"dependencies": {
- "@0x/assert": "^1.0.16",
- "@0x/asset-buyer": "^2.2.2",
- "@0x/json-schemas": "^2.1.0",
- "@0x/order-utils": "^3.0.1",
- "@0x/subproviders": "^2.1.3",
+ "@0x/assert": "^1.0.17",
+ "@0x/asset-buyer": "^3.0.0",
+ "@0x/json-schemas": "^2.1.1",
+ "@0x/order-utils": "^3.0.2",
+ "@0x/subproviders": "^2.1.4",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
"bowser": "^2.0.0-beta.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"copy-to-clipboard": "^3.0.8",
"ethereum-types": "^1.1.2",
"lodash": "^4.17.10",
diff --git a/packages/instant/src/components/erc20_token_selector.tsx b/packages/instant/src/components/erc20_token_selector.tsx
index d4a77c278..e4d8749a9 100644
--- a/packages/instant/src/components/erc20_token_selector.tsx
+++ b/packages/instant/src/components/erc20_token_selector.tsx
@@ -39,6 +39,7 @@ export class ERC20TokenSelector extends React.Component<ERC20TokenSelectorProps>
width="100%"
value={this.state.searchQuery}
onChange={this._handleSearchInputChange}
+ tabIndex={-1}
/>
<Container overflow="scroll" height="calc(100% - 90px)" marginTop="10px">
{_.map(tokens, token => {
@@ -62,8 +63,10 @@ export class ERC20TokenSelector extends React.Component<ERC20TokenSelectorProps>
if (_.isUndefined(searchQuery)) {
return true;
}
- const stringToSearch = `${token.metaData.name} ${token.metaData.symbol}`;
- return _.includes(stringToSearch.toLowerCase(), searchQuery.toLowerCase());
+ const searchQueryLowerCase = searchQuery.toLowerCase();
+ const tokenName = token.metaData.name.toLowerCase();
+ const tokenSymbol = token.metaData.symbol.toLowerCase();
+ return _.startsWith(tokenSymbol, searchQueryLowerCase) || _.startsWith(tokenName, searchQueryLowerCase);
};
}
diff --git a/packages/instant/src/components/instant_heading.tsx b/packages/instant/src/components/instant_heading.tsx
index 7f9567454..002695269 100644
--- a/packages/instant/src/components/instant_heading.tsx
+++ b/packages/instant/src/components/instant_heading.tsx
@@ -32,12 +32,7 @@ export class InstantHeading extends React.Component<InstantHeadingProps, {}> {
public render(): React.ReactNode {
const iconOrAmounts = this._renderIcon() || this._renderAmountsSection();
return (
- <Container
- backgroundColor={ColorOption.primaryColor}
- padding="20px"
- width="100%"
- borderRadius="3px 3px 0px 0px"
- >
+ <Container backgroundColor={ColorOption.primaryColor} padding="20px" width="100%">
<Container marginBottom="5px">
<Text
letterSpacing="1px"
diff --git a/packages/instant/src/components/ui/container.tsx b/packages/instant/src/components/ui/container.tsx
index 8aa5db9e5..4dafe1386 100644
--- a/packages/instant/src/components/ui/container.tsx
+++ b/packages/instant/src/components/ui/container.tsx
@@ -20,7 +20,7 @@ export interface ContainerProps {
marginBottom?: string;
marginLeft?: string;
padding?: string;
- borderRadius?: string;
+ borderRadius?: MediaChoice;
border?: string;
borderColor?: ColorOption;
borderTop?: string;
@@ -57,7 +57,6 @@ export const Container =
${props => cssRuleIfExists(props, 'margin-bottom')}
${props => cssRuleIfExists(props, 'margin-left')}
${props => cssRuleIfExists(props, 'padding')}
- ${props => cssRuleIfExists(props, 'border-radius')}
${props => cssRuleIfExists(props, 'border')}
${props => cssRuleIfExists(props, 'border-top')}
${props => cssRuleIfExists(props, 'border-bottom')}
@@ -70,6 +69,7 @@ export const Container =
${props => props.display && stylesForMedia<string>('display', props.display)}
${props => props.width && stylesForMedia<string>('width', props.width)}
${props => props.height && stylesForMedia<string>('height', props.height)}
+ ${props => props.borderRadius && stylesForMedia<string>('border-radius', props.borderRadius)}
background-color: ${props => (props.backgroundColor ? props.theme[props.backgroundColor] : 'none')};
border-color: ${props => (props.borderColor ? props.theme[props.borderColor] : 'none')};
&:hover {
diff --git a/packages/instant/src/components/ui/input.tsx b/packages/instant/src/components/ui/input.tsx
index 2fb408db4..1ea5d8fe1 100644
--- a/packages/instant/src/components/ui/input.tsx
+++ b/packages/instant/src/components/ui/input.tsx
@@ -3,6 +3,7 @@ import * as React from 'react';
import { ColorOption, styled } from '../../style/theme';
export interface InputProps {
+ tabIndex?: number;
className?: string;
value?: string;
width?: string;
diff --git a/packages/instant/src/components/zero_ex_instant_container.tsx b/packages/instant/src/components/zero_ex_instant_container.tsx
index c0a197590..698bfef17 100644
--- a/packages/instant/src/components/zero_ex_instant_container.tsx
+++ b/packages/instant/src/components/zero_ex_instant_container.tsx
@@ -43,7 +43,7 @@ export class ZeroExInstantContainer extends React.Component<{}, ZeroExInstantCon
zIndex={zIndex.mainContainer}
position="relative"
backgroundColor={ColorOption.white}
- borderRadius="3px"
+ borderRadius={{ default: '3px', sm: '0px' }}
hasBoxShadow={true}
overflow="hidden"
height="100%"
diff --git a/packages/json-schemas/CHANGELOG.json b/packages/json-schemas/CHANGELOG.json
index 24eacd192..bf815e523 100644
--- a/packages/json-schemas/CHANGELOG.json
+++ b/packages/json-schemas/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "2.1.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.1.0",
"changes": [
{
diff --git a/packages/json-schemas/CHANGELOG.md b/packages/json-schemas/CHANGELOG.md
index 4f77d3aee..dc412bded 100644
--- a/packages/json-schemas/CHANGELOG.md
+++ b/packages/json-schemas/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.1.1 - _November 14, 2018_
+
+ * Dependencies updated
+
## v2.1.0 - _November 12, 2018_
* Improve schemas by enforcing that amounts that must be whole numbers (e.g Order asset amounts) no longer allow decimal amounts (#1173)
diff --git a/packages/json-schemas/package.json b/packages/json-schemas/package.json
index 2f57f5097..fb89a2d5b 100644
--- a/packages/json-schemas/package.json
+++ b/packages/json-schemas/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/json-schemas",
- "version": "2.1.0",
+ "version": "2.1.1",
"engines": {
"node": ">=6.12"
},
@@ -46,7 +46,7 @@
},
"devDependencies": {
"@0x/tslint-config": "^1.0.10",
- "@0x/utils": "^2.0.4",
+ "@0x/utils": "^2.0.5",
"@types/lodash.foreach": "^4.5.3",
"@types/lodash.values": "^4.3.3",
"@types/mocha": "^2.2.42",
diff --git a/packages/metacoin/package.json b/packages/metacoin/package.json
index 91b8f1468..f990db6b0 100644
--- a/packages/metacoin/package.json
+++ b/packages/metacoin/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/metacoin",
- "version": "0.0.27",
+ "version": "0.0.28",
"engines": {
"node": ">=6.12"
},
@@ -29,15 +29,15 @@
"author": "",
"license": "Apache-2.0",
"dependencies": {
- "@0x/abi-gen": "^1.0.15",
- "@0x/base-contract": "^3.0.5",
- "@0x/sol-cov": "^2.1.11",
- "@0x/subproviders": "^2.1.3",
+ "@0x/abi-gen": "^1.0.16",
+ "@0x/base-contract": "^3.0.6",
+ "@0x/sol-cov": "^2.1.12",
+ "@0x/subproviders": "^2.1.4",
"@0x/tslint-config": "^1.0.10",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"@types/mocha": "^5.2.2",
"copyfiles": "^2.0.0",
"ethereum-types": "^1.1.2",
@@ -46,8 +46,8 @@
"run-s": "^0.0.0"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.16",
- "@0x/sol-compiler": "^1.1.11",
+ "@0x/dev-utils": "^1.0.17",
+ "@0x/sol-compiler": "^1.1.12",
"chai": "^4.0.1",
"chai-as-promised": "^7.1.0",
"chai-bignumber": "^2.0.1",
diff --git a/packages/migrations/CHANGELOG.json b/packages/migrations/CHANGELOG.json
index dfceeff8a..5b0d58909 100644
--- a/packages/migrations/CHANGELOG.json
+++ b/packages/migrations/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "2.0.4",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "2.0.3",
"changes": [
diff --git a/packages/migrations/CHANGELOG.md b/packages/migrations/CHANGELOG.md
index ba1f59295..87d0b25ca 100644
--- a/packages/migrations/CHANGELOG.md
+++ b/packages/migrations/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.4 - _November 14, 2018_
+
+ * Dependencies updated
+
## v2.0.3 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/migrations/package.json b/packages/migrations/package.json
index 654db6495..8eaae96ba 100644
--- a/packages/migrations/package.json
+++ b/packages/migrations/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/migrations",
- "version": "2.0.3",
+ "version": "2.0.4",
"engines": {
"node": ">=6.12"
},
@@ -17,7 +17,7 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@0x/dev-utils": "^1.0.16",
+ "@0x/dev-utils": "^1.0.17",
"@0x/tslint-config": "^1.0.10",
"@0x/types": "^1.2.1",
"@types/yargs": "^10.0.0",
@@ -29,16 +29,16 @@
"yargs": "^10.0.3"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^1.0.4",
- "@0x/base-contract": "^3.0.5",
+ "@0x/abi-gen-wrappers": "^1.0.5",
+ "@0x/base-contract": "^3.0.6",
"@0x/contract-addresses": "^1.1.0",
"@0x/contract-artifacts": "^1.1.0",
- "@0x/order-utils": "^3.0.1",
- "@0x/sol-compiler": "^1.1.11",
- "@0x/subproviders": "^2.1.3",
+ "@0x/order-utils": "^3.0.2",
+ "@0x/sol-compiler": "^1.1.12",
+ "@0x/subproviders": "^2.1.4",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"@ledgerhq/hw-app-eth": "^4.3.0",
"ethereum-types": "^1.1.2",
"ethers": "~4.0.4",
diff --git a/packages/order-utils/CHANGELOG.json b/packages/order-utils/CHANGELOG.json
index d2a10ca02..55e7defda 100644
--- a/packages/order-utils/CHANGELOG.json
+++ b/packages/order-utils/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "3.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "3.0.1",
"changes": [
diff --git a/packages/order-utils/CHANGELOG.md b/packages/order-utils/CHANGELOG.md
index bfb6082af..edf1569a7 100644
--- a/packages/order-utils/CHANGELOG.md
+++ b/packages/order-utils/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.2 - _November 14, 2018_
+
+ * Dependencies updated
+
## v3.0.1 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/order-utils/package.json b/packages/order-utils/package.json
index e5eacb272..fe5ea70b1 100644
--- a/packages/order-utils/package.json
+++ b/packages/order-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/order-utils",
- "version": "3.0.1",
+ "version": "3.0.2",
"engines": {
"node": ">=6.12"
},
@@ -35,7 +35,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/order-utils/README.md",
"devDependencies": {
- "@0x/dev-utils": "^1.0.16",
+ "@0x/dev-utils": "^1.0.17",
"@0x/tslint-config": "^1.0.10",
"@types/bn.js": "^4.11.0",
"@types/lodash": "4.14.104",
@@ -53,15 +53,15 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^1.0.4",
- "@0x/assert": "^1.0.16",
- "@0x/base-contract": "^3.0.5",
+ "@0x/abi-gen-wrappers": "^1.0.5",
+ "@0x/assert": "^1.0.17",
+ "@0x/base-contract": "^3.0.6",
"@0x/contract-artifacts": "^1.1.0",
- "@0x/json-schemas": "^2.1.0",
+ "@0x/json-schemas": "^2.1.1",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"@types/node": "*",
"bn.js": "^4.11.8",
"ethereum-types": "^1.1.2",
diff --git a/packages/order-watcher/CHANGELOG.json b/packages/order-watcher/CHANGELOG.json
index 7119d7953..b4d7a1501 100644
--- a/packages/order-watcher/CHANGELOG.json
+++ b/packages/order-watcher/CHANGELOG.json
@@ -1,5 +1,16 @@
[
{
+ "version": "2.2.4",
+ "changes": [
+ {
+ "note":
+ "Fix the bug when order watcher was throwing an error on order removal when maker token was ZRX",
+ "pr": 1259
+ }
+ ],
+ "timestamp": 1542208198
+ },
+ {
"version": "2.2.3",
"changes": [
{
diff --git a/packages/order-watcher/CHANGELOG.md b/packages/order-watcher/CHANGELOG.md
index 018a0d206..c7003f759 100644
--- a/packages/order-watcher/CHANGELOG.md
+++ b/packages/order-watcher/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.2.4 - _November 14, 2018_
+
+ * Fix the bug when order watcher was throwing an error on order removal when maker token was ZRX (#1259)
+
## v2.2.3 - _November 13, 2018_
* Start jsonRpcRequestId at 1, not 0 as 0 breaks the web3.js websocket RPC provider (#1227)
diff --git a/packages/order-watcher/package.json b/packages/order-watcher/package.json
index 2bab37908..af88a120e 100644
--- a/packages/order-watcher/package.json
+++ b/packages/order-watcher/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/order-watcher",
- "version": "2.2.3",
+ "version": "2.2.4",
"description": "An order watcher daemon that watches for order validity",
"keywords": [
"0x",
@@ -33,8 +33,8 @@
"node": ">=6.0.0"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.16",
- "@0x/migrations": "^2.0.3",
+ "@0x/dev-utils": "^1.0.17",
+ "@0x/migrations": "^2.0.4",
"@0x/tslint-config": "^1.0.10",
"@types/bintrees": "^1.0.2",
"@types/lodash": "4.14.104",
@@ -57,19 +57,19 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/abi-gen-wrappers": "^1.0.4",
- "@0x/assert": "^1.0.16",
- "@0x/base-contract": "^3.0.5",
+ "@0x/abi-gen-wrappers": "^1.0.5",
+ "@0x/assert": "^1.0.17",
+ "@0x/base-contract": "^3.0.6",
"@0x/contract-addresses": "^1.1.0",
"@0x/contract-artifacts": "^1.1.0",
- "@0x/contract-wrappers": "^4.0.1",
- "@0x/fill-scenarios": "^1.0.11",
- "@0x/json-schemas": "^2.1.0",
- "@0x/order-utils": "^3.0.1",
+ "@0x/contract-wrappers": "^4.0.2",
+ "@0x/fill-scenarios": "^1.0.12",
+ "@0x/json-schemas": "^2.1.1",
+ "@0x/order-utils": "^3.0.2",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"bintrees": "^1.0.2",
"ethereum-types": "^1.1.2",
"ethereumjs-blockstream": "6.0.0",
diff --git a/packages/order-watcher/src/order_watcher/dependent_order_hashes_tracker.ts b/packages/order-watcher/src/order_watcher/dependent_order_hashes_tracker.ts
index 1ec568a9b..a956a94db 100644
--- a/packages/order-watcher/src/order_watcher/dependent_order_hashes_tracker.ts
+++ b/packages/order-watcher/src/order_watcher/dependent_order_hashes_tracker.ts
@@ -89,7 +89,10 @@ export class DependentOrderHashesTracker {
(decodedMakerAssetData as ERC721AssetData).tokenId,
);
}
- this._removeFromERC20DependentOrderhashes(signedOrder, this._zrxTokenAddress);
+ // If makerToken === ZRX then we already removed it and we don't need to remove it again.
+ if ((decodedMakerAssetData as ERC20AssetData).tokenAddress !== this._zrxTokenAddress) {
+ this._removeFromERC20DependentOrderhashes(signedOrder, this._zrxTokenAddress);
+ }
this._removeFromMakerDependentOrderhashes(signedOrder);
}
private _getDependentOrderHashesByERC20AssetData(makerAddress: string, erc20AssetData: string): string[] {
diff --git a/packages/react-docs/CHANGELOG.json b/packages/react-docs/CHANGELOG.json
index 401070f2a..0e9afc32a 100644
--- a/packages/react-docs/CHANGELOG.json
+++ b/packages/react-docs/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.0.18",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "1.0.17",
"changes": [
diff --git a/packages/react-docs/CHANGELOG.md b/packages/react-docs/CHANGELOG.md
index 1cbbc7a84..db574e41b 100644
--- a/packages/react-docs/CHANGELOG.md
+++ b/packages/react-docs/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.18 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.0.17 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/react-docs/package.json b/packages/react-docs/package.json
index 31101becb..3e77a9a07 100644
--- a/packages/react-docs/package.json
+++ b/packages/react-docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/react-docs",
- "version": "1.0.17",
+ "version": "1.0.18",
"engines": {
"node": ">=6.12"
},
@@ -24,7 +24,7 @@
"url": "https://github.com/0xProject/0x-monorepo.git"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.16",
+ "@0x/dev-utils": "^1.0.17",
"@0x/tslint-config": "^1.0.10",
"@types/compare-versions": "^3.0.0",
"@types/styled-components": "^4.0.0",
@@ -34,9 +34,9 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/react-shared": "^1.0.20",
+ "@0x/react-shared": "^1.0.21",
"@0x/types": "^1.2.1",
- "@0x/utils": "^2.0.4",
+ "@0x/utils": "^2.0.5",
"@types/lodash": "4.14.104",
"@types/material-ui": "^0.20.0",
"@types/node": "*",
diff --git a/packages/react-shared/CHANGELOG.json b/packages/react-shared/CHANGELOG.json
index a54d7d1dc..cb8ae1bf0 100644
--- a/packages/react-shared/CHANGELOG.json
+++ b/packages/react-shared/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.0.21",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "1.0.20",
"changes": [
diff --git a/packages/react-shared/CHANGELOG.md b/packages/react-shared/CHANGELOG.md
index 93a6b2694..0ecb66a27 100644
--- a/packages/react-shared/CHANGELOG.md
+++ b/packages/react-shared/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.21 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.0.20 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/react-shared/package.json b/packages/react-shared/package.json
index e372178b1..d2a00ca9c 100644
--- a/packages/react-shared/package.json
+++ b/packages/react-shared/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/react-shared",
- "version": "1.0.20",
+ "version": "1.0.21",
"engines": {
"node": ">=6.12"
},
@@ -25,7 +25,7 @@
"url": "https://github.com/0xProject/0x-monorepo.git"
},
"devDependencies": {
- "@0x/dev-utils": "^1.0.16",
+ "@0x/dev-utils": "^1.0.17",
"@0x/tslint-config": "^1.0.10",
"make-promises-safe": "^1.1.0",
"shx": "^0.2.2",
diff --git a/packages/sol-compiler/CHANGELOG.json b/packages/sol-compiler/CHANGELOG.json
index cabfe4aab..fc39106dc 100644
--- a/packages/sol-compiler/CHANGELOG.json
+++ b/packages/sol-compiler/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.1.12",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "1.1.11",
"changes": [
diff --git a/packages/sol-compiler/CHANGELOG.md b/packages/sol-compiler/CHANGELOG.md
index 11030718b..b69976cdc 100644
--- a/packages/sol-compiler/CHANGELOG.md
+++ b/packages/sol-compiler/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.1.12 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.1.11 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/sol-compiler/package.json b/packages/sol-compiler/package.json
index 4c3d0928f..2904cfd23 100644
--- a/packages/sol-compiler/package.json
+++ b/packages/sol-compiler/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-compiler",
- "version": "1.1.11",
+ "version": "1.1.12",
"engines": {
"node": ">=6.12"
},
@@ -42,7 +42,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-compiler/README.md",
"devDependencies": {
- "@0x/dev-utils": "^1.0.16",
+ "@0x/dev-utils": "^1.0.17",
"@0x/tslint-config": "^1.0.10",
"@types/mkdirp": "^0.5.2",
"@types/require-from-string": "^1.2.0",
@@ -65,13 +65,13 @@
"zeppelin-solidity": "1.8.0"
},
"dependencies": {
- "@0x/assert": "^1.0.16",
- "@0x/json-schemas": "^2.1.0",
+ "@0x/assert": "^1.0.17",
+ "@0x/json-schemas": "^2.1.1",
"@0x/sol-resolver": "^1.0.16",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"@types/yargs": "^11.0.0",
"chalk": "^2.3.0",
"ethereum-types": "^1.1.2",
diff --git a/packages/sol-cov/CHANGELOG.json b/packages/sol-cov/CHANGELOG.json
index 7512c8b61..bdeda8a96 100644
--- a/packages/sol-cov/CHANGELOG.json
+++ b/packages/sol-cov/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "2.1.12",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "2.1.11",
"changes": [
diff --git a/packages/sol-cov/CHANGELOG.md b/packages/sol-cov/CHANGELOG.md
index be8522a6b..906c0dd52 100644
--- a/packages/sol-cov/CHANGELOG.md
+++ b/packages/sol-cov/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.1.12 - _November 14, 2018_
+
+ * Dependencies updated
+
## v2.1.11 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/sol-cov/package.json b/packages/sol-cov/package.json
index b5f84a43b..159a2207d 100644
--- a/packages/sol-cov/package.json
+++ b/packages/sol-cov/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-cov",
- "version": "2.1.11",
+ "version": "2.1.12",
"engines": {
"node": ">=6.12"
},
@@ -42,12 +42,12 @@
},
"homepage": "https://github.com/0xProject/0x.js/packages/sol-cov/README.md",
"dependencies": {
- "@0x/dev-utils": "^1.0.16",
- "@0x/sol-compiler": "^1.1.11",
- "@0x/subproviders": "^2.1.3",
+ "@0x/dev-utils": "^1.0.17",
+ "@0x/sol-compiler": "^1.1.12",
+ "@0x/subproviders": "^2.1.4",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"@types/solidity-parser-antlr": "^0.2.0",
"ethereum-types": "^1.1.2",
"ethereumjs-util": "^5.1.1",
diff --git a/packages/sol-doc/CHANGELOG.json b/packages/sol-doc/CHANGELOG.json
index 52659e99b..a9547c883 100644
--- a/packages/sol-doc/CHANGELOG.json
+++ b/packages/sol-doc/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.0.7",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "1.0.6",
"changes": [
diff --git a/packages/sol-doc/CHANGELOG.md b/packages/sol-doc/CHANGELOG.md
index b1654bb7f..74a736c75 100644
--- a/packages/sol-doc/CHANGELOG.md
+++ b/packages/sol-doc/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.7 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.0.6 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/sol-doc/package.json b/packages/sol-doc/package.json
index 22de4b764..e56408f98 100644
--- a/packages/sol-doc/package.json
+++ b/packages/sol-doc/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sol-doc",
- "version": "1.0.6",
+ "version": "1.0.7",
"description": "Solidity documentation generator",
"main": "lib/src/index.js",
"types": "lib/src/index.d.js",
@@ -25,9 +25,9 @@
"author": "F. Eugene Aumson",
"license": "Apache-2.0",
"dependencies": {
- "@0x/sol-compiler": "^1.1.11",
+ "@0x/sol-compiler": "^1.1.12",
"@0x/types": "^1.2.1",
- "@0x/utils": "^2.0.4",
+ "@0x/utils": "^2.0.5",
"ethereum-types": "^1.1.2",
"ethereumjs-util": "^5.1.1",
"lodash": "^4.17.10",
diff --git a/packages/sra-spec/CHANGELOG.json b/packages/sra-spec/CHANGELOG.json
index 37ad85385..3cc917e5a 100644
--- a/packages/sra-spec/CHANGELOG.json
+++ b/packages/sra-spec/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "1.0.10",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542028948,
"version": "1.0.9",
"changes": [
diff --git a/packages/sra-spec/CHANGELOG.md b/packages/sra-spec/CHANGELOG.md
index c53ad6b5b..8b2b7747b 100644
--- a/packages/sra-spec/CHANGELOG.md
+++ b/packages/sra-spec/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.10 - _November 14, 2018_
+
+ * Dependencies updated
+
## v1.0.9 - _November 12, 2018_
* Dependencies updated
diff --git a/packages/sra-spec/package.json b/packages/sra-spec/package.json
index 1b7d0ccab..fac5a5a4b 100644
--- a/packages/sra-spec/package.json
+++ b/packages/sra-spec/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/sra-spec",
- "version": "1.0.9",
+ "version": "1.0.10",
"engines": {
"node": ">=6.12"
},
@@ -35,7 +35,7 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/sra-spec/README.md",
"dependencies": {
- "@0x/json-schemas": "^2.1.0",
+ "@0x/json-schemas": "^2.1.1",
"@loopback/openapi-v3-types": "^0.8.2"
},
"devDependencies": {
diff --git a/packages/subproviders/CHANGELOG.json b/packages/subproviders/CHANGELOG.json
index 2524c3945..cdc150c3a 100644
--- a/packages/subproviders/CHANGELOG.json
+++ b/packages/subproviders/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "2.1.4",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "2.1.3",
"changes": [
diff --git a/packages/subproviders/CHANGELOG.md b/packages/subproviders/CHANGELOG.md
index c618a2067..eda76bd2f 100644
--- a/packages/subproviders/CHANGELOG.md
+++ b/packages/subproviders/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.1.4 - _November 14, 2018_
+
+ * Dependencies updated
+
## v2.1.3 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json
index aa6026d96..d249e4d6d 100644
--- a/packages/subproviders/package.json
+++ b/packages/subproviders/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/subproviders",
- "version": "2.1.3",
+ "version": "2.1.4",
"engines": {
"node": ">=6.12"
},
@@ -29,11 +29,11 @@
}
},
"dependencies": {
- "@0x/assert": "^1.0.16",
+ "@0x/assert": "^1.0.17",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"@ledgerhq/hw-app-eth": "^4.3.0",
"@ledgerhq/hw-transport-u2f": "4.24.0",
"@types/eth-lightwallet": "^3.0.0",
diff --git a/packages/testnet-faucets/package.json b/packages/testnet-faucets/package.json
index bb4a31654..ac720a748 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.55",
+ "version": "1.0.56",
"engines": {
"node": ">=6.12"
},
@@ -18,11 +18,11 @@
"author": "Fabio Berger",
"license": "Apache-2.0",
"dependencies": {
- "0x.js": "^2.0.3",
- "@0x/subproviders": "^2.1.3",
+ "0x.js": "^2.0.4",
+ "@0x/subproviders": "^2.1.4",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"body-parser": "^1.17.1",
"ethereum-types": "^1.1.2",
"ethereumjs-tx": "^1.3.5",
diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json
index 6c9da5f37..1ef16e112 100644
--- a/packages/utils/CHANGELOG.json
+++ b/packages/utils/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "2.0.5",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "2.0.4",
"changes": [
{
diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md
index 4fdd13d9c..9846dd344 100644
--- a/packages/utils/CHANGELOG.md
+++ b/packages/utils/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.5 - _November 14, 2018_
+
+ * Dependencies updated
+
## v2.0.4 - _November 9, 2018_
* Dependencies updated
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 24c2496b0..4b924226f 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/utils",
- "version": "2.0.4",
+ "version": "2.0.5",
"engines": {
"node": ">=6.12"
},
diff --git a/packages/web3-wrapper/CHANGELOG.json b/packages/web3-wrapper/CHANGELOG.json
index 8390f3804..b938f6986 100644
--- a/packages/web3-wrapper/CHANGELOG.json
+++ b/packages/web3-wrapper/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "timestamp": 1542208198,
+ "version": "3.1.4",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"timestamp": 1542134075,
"version": "3.1.3",
"changes": [
diff --git a/packages/web3-wrapper/CHANGELOG.md b/packages/web3-wrapper/CHANGELOG.md
index c9fc00beb..70a00ee1e 100644
--- a/packages/web3-wrapper/CHANGELOG.md
+++ b/packages/web3-wrapper/CHANGELOG.md
@@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.1.4 - _November 14, 2018_
+
+ * Dependencies updated
+
## v3.1.3 - _November 13, 2018_
* Dependencies updated
diff --git a/packages/web3-wrapper/package.json b/packages/web3-wrapper/package.json
index 6676db6d2..2469f7627 100644
--- a/packages/web3-wrapper/package.json
+++ b/packages/web3-wrapper/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/web3-wrapper",
- "version": "3.1.3",
+ "version": "3.1.4",
"engines": {
"node": ">=6.12"
},
@@ -53,10 +53,10 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0x/assert": "^1.0.16",
- "@0x/json-schemas": "^2.1.0",
+ "@0x/assert": "^1.0.17",
+ "@0x/json-schemas": "^2.1.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
+ "@0x/utils": "^2.0.5",
"ethereum-types": "^1.1.2",
"ethereumjs-util": "^5.1.1",
"ethers": "~4.0.4",
diff --git a/packages/website/package.json b/packages/website/package.json
index a2c1df695..bb64b24db 100644
--- a/packages/website/package.json
+++ b/packages/website/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/website",
- "version": "0.0.58",
+ "version": "0.0.59",
"engines": {
"node": ">=6.12"
},
@@ -20,16 +20,16 @@
"author": "Fabio Berger",
"license": "Apache-2.0",
"dependencies": {
- "@0x/contract-wrappers": "^4.0.1",
- "@0x/json-schemas": "^2.1.0",
- "@0x/order-utils": "^3.0.1",
- "@0x/react-docs": "^1.0.17",
- "@0x/react-shared": "^1.0.20",
- "@0x/subproviders": "^2.1.3",
+ "@0x/contract-wrappers": "^4.0.2",
+ "@0x/json-schemas": "^2.1.1",
+ "@0x/order-utils": "^3.0.2",
+ "@0x/react-docs": "^1.0.18",
+ "@0x/react-shared": "^1.0.21",
+ "@0x/subproviders": "^2.1.4",
"@0x/types": "^1.2.1",
"@0x/typescript-typings": "^3.0.4",
- "@0x/utils": "^2.0.4",
- "@0x/web3-wrapper": "^3.1.3",
+ "@0x/utils": "^2.0.5",
+ "@0x/web3-wrapper": "^3.1.4",
"accounting": "^0.4.1",
"basscss": "^8.0.3",
"blockies": "^0.0.2",
diff --git a/python-packages/order_utils/.pylintrc b/python-packages/order_utils/.pylintrc
new file mode 100644
index 000000000..937bc6313
--- /dev/null
+++ b/python-packages/order_utils/.pylintrc
@@ -0,0 +1,3 @@
+[MESSAGES CONTROL]
+disable=C0330,line-too-long,fixme,too-few-public-methods,too-many-ancestors
+# C0330 is "bad hanging indent". we use indents per `black`.
diff --git a/python-packages/order_utils/setup.py b/python-packages/order_utils/setup.py
index 7f1da2f34..679bfb4b2 100755
--- a/python-packages/order_utils/setup.py
+++ b/python-packages/order_utils/setup.py
@@ -24,7 +24,6 @@ class TestCommandExtension(TestCommand):
exit(pytest.main())
-# pylint: disable=too-many-ancestors
class LintCommand(distutils.command.build_py.build_py):
"""Custom setuptools command class for running linters."""
@@ -90,7 +89,6 @@ class CleanCommandExtension(clean):
rmtree("src/0x_order_utils.egg-info", ignore_errors=True)
-# pylint: disable=too-many-ancestors
class TestPublishCommand(distutils.command.build_py.build_py):
"""Custom command to publish to test.pypi.org."""
@@ -108,7 +106,6 @@ class TestPublishCommand(distutils.command.build_py.build_py):
)
-# pylint: disable=too-many-ancestors
class PublishCommand(distutils.command.build_py.build_py):
"""Custom command to publish to pypi.org."""
@@ -119,7 +116,6 @@ class PublishCommand(distutils.command.build_py.build_py):
subprocess.check_call("twine upload dist/*".split()) # nosec
-# pylint: disable=too-many-ancestors
class GanacheCommand(distutils.command.build_py.build_py):
"""Custom command to publish to pypi.org."""
@@ -163,7 +159,7 @@ setup(
install_requires=[
"eth-abi",
"eth_utils",
- "ethereum",
+ "jsonschema",
"mypy_extensions",
"web3",
],
@@ -188,6 +184,7 @@ setup(
package_data={
"zero_ex.order_utils": ["py.typed"],
"zero_ex.contract_artifacts": ["artifacts/*"],
+ "zero_ex.json_schemas": ["schemas/*"],
},
package_dir={"": "src"},
license="Apache 2.0",
diff --git a/python-packages/order_utils/src/index.rst b/python-packages/order_utils/src/index.rst
index b99addabd..551487ab1 100644
--- a/python-packages/order_utils/src/index.rst
+++ b/python-packages/order_utils/src/index.rst
@@ -7,6 +7,11 @@ Python zero_ex.order_utils
:maxdepth: 2
:caption: Contents:
+.. autoclass:: zero_ex.order_utils.Order
+ :members:
+
+See source for class properties. Sphinx does not easily generate class property docs; pull requests welcome.
+
.. automodule:: zero_ex.order_utils
:members:
@@ -17,9 +22,7 @@ Python zero_ex.order_utils
.. autoclass:: zero_ex.order_utils.asset_data_utils.ERC721AssetData
-See source for class properties. Sphinx does not easily generate class property docs; pull requests welcome.
-
-.. automodule:: zero_ex.order_utils.signature_utils
+.. automodule:: zero_ex.json_schemas
:members:
Indices and tables
diff --git a/python-packages/order_utils/src/zero_ex/dev_utils/abi_utils.py b/python-packages/order_utils/src/zero_ex/dev_utils/abi_utils.py
index 9afeacfdf..3fec775b0 100644
--- a/python-packages/order_utils/src/zero_ex/dev_utils/abi_utils.py
+++ b/python-packages/order_utils/src/zero_ex/dev_utils/abi_utils.py
@@ -84,7 +84,6 @@ def method_id(name: str, types: List[str]) -> str:
def simple_encode(method: str, *args: Any) -> bytes:
- # docstring considered all one line by pylint: disable=line-too-long
r"""Encode a method ABI.
>>> simple_encode("ERC20Token(address)", "0x1dc4c1cefef38a777b15aa20260a54e584b16c48")
diff --git a/python-packages/order_utils/src/zero_ex/dev_utils/type_assertions.py b/python-packages/order_utils/src/zero_ex/dev_utils/type_assertions.py
index 08c1b0ea5..1dcfb39a9 100644
--- a/python-packages/order_utils/src/zero_ex/dev_utils/type_assertions.py
+++ b/python-packages/order_utils/src/zero_ex/dev_utils/type_assertions.py
@@ -2,6 +2,9 @@
from typing import Any
+from eth_utils import is_address
+from web3.providers.base import BaseProvider
+
def assert_is_string(value: Any, name: str) -> None:
"""If :param value: isn't of type str, raise a TypeError.
@@ -56,3 +59,31 @@ def assert_is_hex_string(value: Any, name: str) -> None:
"""
assert_is_string(value, name)
int(value, 16) # raises a ValueError if value isn't a base-16 str
+
+
+def assert_is_address(value: Any, name: str) -> None:
+ """Assert that `value` is a valid Ethereum address.
+
+ If `value` isn't a hex string, raise a TypeError. If it isn't a valid
+ Ethereum address, raise a ValueError.
+ """
+ assert_is_hex_string(value, name)
+ if not is_address(value):
+ raise ValueError(
+ f"Expected variable '{name}' to be a valid Ethereum"
+ + " address, but it's not."
+ )
+
+
+def assert_is_provider(value: Any, name: str) -> None:
+ """Assert that `value` is a Web3 provider.
+
+ If `value` isn't a Web3 provider, raise a TypeError.
+ """
+ # TODO: make this provider check more flexible.
+ # https://app.asana.com/0/684263176955174/901300863045491/f
+ if not isinstance(value, BaseProvider):
+ raise TypeError(
+ f"Expected variable '{name}' to be an instance of a Web3 provider,"
+ + " but it's not."
+ )
diff --git a/python-packages/order_utils/src/zero_ex/json_schemas/__init__.py b/python-packages/order_utils/src/zero_ex/json_schemas/__init__.py
new file mode 100644
index 000000000..2a1728b8a
--- /dev/null
+++ b/python-packages/order_utils/src/zero_ex/json_schemas/__init__.py
@@ -0,0 +1,61 @@
+"""JSON schemas and associated utilities."""
+
+from os import path
+import json
+from typing import Mapping
+
+from pkg_resources import resource_string
+import jsonschema
+
+
+def assert_valid(data: Mapping, schema_id: str) -> None:
+ """Validate the given `data` against the specified `schema`.
+
+ :param data: Python dictionary to be validated as a JSON object.
+ :param schema_id: id property of the JSON schema to validate against. Must
+ be one of those listed in `the 0x JSON schema files
+ <https://github.com/0xProject/0x-monorepo/tree/development/packages/json-schemas/schemas>`_.
+
+ Raises an exception if validation fails.
+
+ >>> assert_valid(
+ ... {'v': 27, 'r': '0x'+'f'*64, 's': '0x'+'f'*64},
+ ... '/ECSignature',
+ ... )
+ """
+ # noqa
+ class LocalRefResolver(jsonschema.RefResolver):
+ """Resolve package-local JSON schema id's."""
+
+ def __init__(self):
+ self.ref_to_file = {
+ "/addressSchema": "address_schema.json",
+ "/hexSchema": "hex_schema.json",
+ "/orderSchema": "order_schema.json",
+ "/wholeNumberSchema": "whole_number_schema.json",
+ "/ECSignature": "ec_signature_schema.json",
+ "/ecSignatureParameterSchema": (
+ "ec_signature_parameter_schema.json" + ""
+ ),
+ }
+ jsonschema.RefResolver.__init__(self, "", "")
+
+ def resolve_from_url(self, url):
+ """Resolve the given URL."""
+ ref = url.replace("file://", "")
+ if ref in self.ref_to_file:
+ return json.loads(
+ resource_string(
+ "zero_ex.json_schemas",
+ f"schemas/{self.ref_to_file[ref]}",
+ )
+ )
+ raise jsonschema.ValidationError(
+ f"Unknown ref '{ref}'. "
+ + f"Known refs: {list(self.ref_to_file.keys())}."
+ )
+
+ resolver = LocalRefResolver()
+ jsonschema.validate(
+ data, resolver.resolve_from_url(schema_id), resolver=resolver
+ )
diff --git a/python-packages/order_utils/src/zero_ex/json_schemas/schemas b/python-packages/order_utils/src/zero_ex/json_schemas/schemas
new file mode 120000
index 000000000..b8257372c
--- /dev/null
+++ b/python-packages/order_utils/src/zero_ex/json_schemas/schemas
@@ -0,0 +1 @@
+../../../../../packages/json-schemas/schemas/ \ No newline at end of file
diff --git a/python-packages/order_utils/src/zero_ex/order_utils/__init__.py b/python-packages/order_utils/src/zero_ex/order_utils/__init__.py
index fb5bc2f5d..24c6bfd4e 100644
--- a/python-packages/order_utils/src/zero_ex/order_utils/__init__.py
+++ b/python-packages/order_utils/src/zero_ex/order_utils/__init__.py
@@ -10,28 +10,50 @@ just this purpose. To start it: ``docker run -d -p 8545:8545 0xorg/ganache-cli
fence smart topic"``.
"""
+from enum import auto, Enum
import json
-from typing import Dict
+from typing import Dict, Tuple
from pkg_resources import resource_string
from mypy_extensions import TypedDict
-from eth_utils import is_address, keccak, to_checksum_address, to_bytes
+from eth_utils import keccak, to_bytes, to_checksum_address
from web3 import Web3
-from web3.utils import datatypes
import web3.exceptions
+from web3.providers.base import BaseProvider
+from web3.utils import datatypes
+from zero_ex.dev_utils.type_assertions import (
+ assert_is_address,
+ assert_is_hex_string,
+ assert_is_provider,
+)
+from zero_ex.json_schemas import assert_valid
-class Constants: # pylint: disable=too-few-public-methods
+
+class _Constants:
"""Static data used by order utilities."""
- contract_name_to_abi = {
- "Exchange": json.loads(
- resource_string(
- "zero_ex.contract_artifacts", "artifacts/Exchange.json"
- )
- )["compilerOutput"]["abi"]
- }
+ _contract_name_to_abi: Dict[str, Dict] = {} # class data, not instance
+
+ @classmethod
+ def contract_name_to_abi(cls, contract_name: str) -> Dict:
+ """Return the ABI for the given contract name.
+
+ First tries to get data from the class level storage
+ `_contract_name_to_abi`. If it's not there, loads it from disk, stores
+ it in the class data (for the next caller), and then returns it.
+ """
+ try:
+ return cls._contract_name_to_abi[contract_name]
+ except KeyError:
+ cls._contract_name_to_abi[contract_name] = json.loads(
+ resource_string(
+ "zero_ex.contract_artifacts",
+ f"artifacts/{contract_name}.json",
+ )
+ )["compilerOutput"]["abi"]
+ return cls._contract_name_to_abi[contract_name]
network_to_exchange_addr: Dict[str, str] = {
"1": "0x4f833a24e1f95d70f028921e27040ca56e09ab0b",
@@ -71,66 +93,89 @@ class Constants: # pylint: disable=too-few-public-methods
+ b")"
)
+ class SignatureType(Enum):
+ """Enumeration of known signature types."""
+
+ ILLEGAL = 0
+ INVALID = auto()
+ EIP712 = auto()
+ ETH_SIGN = auto()
+ WALLET = auto()
+ VALIDATOR = auto()
+ PRE_SIGNED = auto()
+ N_SIGNATURE_TYPES = auto()
+
class Order(TypedDict): # pylint: disable=too-many-instance-attributes
"""Object representation of a 0x order."""
- maker_address: str
- taker_address: str
- fee_recipient_address: str
- sender_address: str
- maker_asset_amount: int
- taker_asset_amount: int
- maker_fee: int
- taker_fee: int
- expiration_time_seconds: int
- salt: int
- maker_asset_data: str
- taker_asset_data: str
+ makerAddress: str
+ takerAddress: str
+ feeRecipientAddress: str
+ senderAddress: str
+ makerAssetAmount: str
+ takerAssetAmount: str
+ makerFee: str
+ takerFee: str
+ expirationTimeSeconds: str
+ salt: str
+ makerAssetData: str
+ takerAssetData: str
+ exchangeAddress: str
def make_empty_order() -> Order:
- """Construct an empty order."""
+ """Construct an empty order.
+
+ Initializes all strings to "0x0000000000000000000000000000000000000000"
+ and all numbers to 0.
+ """
return {
- "maker_address": Constants.null_address,
- "taker_address": Constants.null_address,
- "sender_address": Constants.null_address,
- "fee_recipient_address": Constants.null_address,
- "maker_asset_data": Constants.null_address,
- "taker_asset_data": Constants.null_address,
- "salt": 0,
- "maker_fee": 0,
- "taker_fee": 0,
- "maker_asset_amount": 0,
- "taker_asset_amount": 0,
- "expiration_time_seconds": 0,
+ "makerAddress": _Constants.null_address,
+ "takerAddress": _Constants.null_address,
+ "senderAddress": _Constants.null_address,
+ "feeRecipientAddress": _Constants.null_address,
+ "makerAssetData": _Constants.null_address,
+ "takerAssetData": _Constants.null_address,
+ "salt": "0",
+ "makerFee": "0",
+ "takerFee": "0",
+ "makerAssetAmount": "0",
+ "takerAssetAmount": "0",
+ "expirationTimeSeconds": "0",
+ "exchangeAddress": _Constants.null_address,
}
-def generate_order_hash_hex(order: Order, exchange_address: str) -> str:
- # docstring considered all one line by pylint: disable=line-too-long
+def generate_order_hash_hex(order: Order) -> str:
"""Calculate the hash of the given order as a hexadecimal string.
+ :param order: The order to be hashed. Must conform to `the 0x order JSON schema <https://github.com/0xProject/0x-monorepo/blob/development/packages/json-schemas/schemas/order_schema.json>`_.
+ :param exchange_address: The address to which the 0x Exchange smart
+ contract has been deployed.
+ :rtype: A string, of ASCII hex digits, representing the order hash.
+
>>> generate_order_hash_hex(
... {
- ... 'maker_address': "0x0000000000000000000000000000000000000000",
- ... 'taker_address': "0x0000000000000000000000000000000000000000",
- ... 'fee_recipient_address': "0x0000000000000000000000000000000000000000",
- ... 'sender_address': "0x0000000000000000000000000000000000000000",
- ... 'maker_asset_amount': 1000000000000000000,
- ... 'taker_asset_amount': 1000000000000000000,
- ... 'maker_fee': 0,
- ... 'taker_fee': 0,
- ... 'expiration_time_seconds': 12345,
- ... 'salt': 12345,
- ... 'maker_asset_data': "0000000000000000000000000000000000000000",
- ... 'taker_asset_data': "0000000000000000000000000000000000000000",
+ ... 'makerAddress': "0x0000000000000000000000000000000000000000",
+ ... 'takerAddress': "0x0000000000000000000000000000000000000000",
+ ... 'feeRecipientAddress': "0x0000000000000000000000000000000000000000",
+ ... 'senderAddress': "0x0000000000000000000000000000000000000000",
+ ... 'makerAssetAmount': "1000000000000000000",
+ ... 'takerAssetAmount': "1000000000000000000",
+ ... 'makerFee': "0",
+ ... 'takerFee': "0",
+ ... 'expirationTimeSeconds': "12345",
+ ... 'salt': "12345",
+ ... 'makerAssetData': "0x0000000000000000000000000000000000000000",
+ ... 'takerAssetData': "0x0000000000000000000000000000000000000000",
+ ... 'exchangeAddress': "0x0000000000000000000000000000000000000000",
... },
- ... exchange_address="0x0000000000000000000000000000000000000000",
... )
'55eaa6ec02f3224d30873577e9ddd069a288c16d6fb407210eecbc501fa76692'
""" # noqa: E501 (line too long)
- # TODO: use JSON schema validation to validate order. pylint: disable=fixme
+ assert_valid(order, "/orderSchema")
+
def pad_20_bytes_to_32(twenty_bytes: bytes):
return bytes(12) + twenty_bytes
@@ -138,28 +183,223 @@ def generate_order_hash_hex(order: Order, exchange_address: str) -> str:
return i.to_bytes(32, byteorder="big")
eip712_domain_struct_hash = keccak(
- Constants.eip712_domain_struct_header
- + pad_20_bytes_to_32(to_bytes(hexstr=exchange_address))
+ _Constants.eip712_domain_struct_header
+ + pad_20_bytes_to_32(to_bytes(hexstr=order["exchangeAddress"]))
)
eip712_order_struct_hash = keccak(
- Constants.eip712_order_schema_hash
- + pad_20_bytes_to_32(to_bytes(hexstr=order["maker_address"]))
- + pad_20_bytes_to_32(to_bytes(hexstr=order["taker_address"]))
- + pad_20_bytes_to_32(to_bytes(hexstr=order["fee_recipient_address"]))
- + pad_20_bytes_to_32(to_bytes(hexstr=order["sender_address"]))
- + int_to_32_big_endian_bytes(order["maker_asset_amount"])
- + int_to_32_big_endian_bytes(order["taker_asset_amount"])
- + int_to_32_big_endian_bytes(order["maker_fee"])
- + int_to_32_big_endian_bytes(order["taker_fee"])
- + int_to_32_big_endian_bytes(order["expiration_time_seconds"])
- + int_to_32_big_endian_bytes(order["salt"])
- + keccak(to_bytes(hexstr=order["maker_asset_data"]))
- + keccak(to_bytes(hexstr=order["taker_asset_data"]))
+ _Constants.eip712_order_schema_hash
+ + pad_20_bytes_to_32(to_bytes(hexstr=order["makerAddress"]))
+ + pad_20_bytes_to_32(to_bytes(hexstr=order["takerAddress"]))
+ + pad_20_bytes_to_32(to_bytes(hexstr=order["feeRecipientAddress"]))
+ + pad_20_bytes_to_32(to_bytes(hexstr=order["senderAddress"]))
+ + int_to_32_big_endian_bytes(int(order["makerAssetAmount"]))
+ + int_to_32_big_endian_bytes(int(order["takerAssetAmount"]))
+ + int_to_32_big_endian_bytes(int(order["makerFee"]))
+ + int_to_32_big_endian_bytes(int(order["takerFee"]))
+ + int_to_32_big_endian_bytes(int(order["expirationTimeSeconds"]))
+ + int_to_32_big_endian_bytes(int(order["salt"]))
+ + keccak(to_bytes(hexstr=order["makerAssetData"]))
+ + keccak(to_bytes(hexstr=order["takerAssetData"]))
)
return keccak(
- Constants.eip191_header
+ _Constants.eip191_header
+ eip712_domain_struct_hash
+ eip712_order_struct_hash
).hex()
+
+
+def is_valid_signature(
+ provider: BaseProvider, data: str, signature: str, signer_address: str
+) -> Tuple[bool, str]:
+ """Check the validity of the supplied signature.
+
+ Check if the supplied ``signature`` corresponds to signing ``data`` with
+ the private key corresponding to ``signer_address``.
+
+ :param provider: A Web3 provider able to access the 0x Exchange contract.
+ :param data: The hex encoded data signed by the supplied signature.
+ :param signature: The hex encoded signature.
+ :param signer_address: The hex encoded address that signed the data to
+ produce the supplied signature.
+ :rtype: Tuple consisting of a boolean and a string. Boolean is true if
+ valid, false otherwise. If false, the string describes the reason.
+
+ >>> is_valid_signature(
+ ... Web3.HTTPProvider("http://127.0.0.1:8545"),
+ ... '0x6927e990021d23b1eb7b8789f6a6feaf98fe104bb0cf8259421b79f9a34222b0',
+ ... '0x1B61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc3340349190569279751135161d22529dc25add4f6069af05be04cacbda2ace225403',
+ ... '0x5409ed021d9299bf6814279a6a1411a7e866a631',
+ ... )
+ (True, '')
+ """ # noqa: E501 (line too long)
+ assert_is_provider(provider, "provider")
+ assert_is_hex_string(data, "data")
+ assert_is_hex_string(signature, "signature")
+ assert_is_address(signer_address, "signer_address")
+
+ web3_instance = Web3(provider)
+ # false positive from pylint: disable=no-member
+ network_id = web3_instance.net.version
+ contract_address = _Constants.network_to_exchange_addr[network_id]
+ # false positive from pylint: disable=no-member
+ contract: datatypes.Contract = web3_instance.eth.contract(
+ address=to_checksum_address(contract_address),
+ abi=_Constants.contract_name_to_abi("Exchange"),
+ )
+ try:
+ return (
+ contract.call().isValidSignature(
+ data, to_checksum_address(signer_address), signature
+ ),
+ "",
+ )
+ except web3.exceptions.BadFunctionCallOutput as exception:
+ known_revert_reasons = [
+ "LENGTH_GREATER_THAN_0_REQUIRED",
+ "SIGNATURE_ILLEGAL",
+ "SIGNATURE_UNSUPPORTED",
+ "LENGTH_0_REQUIRED",
+ "LENGTH_65_REQUIRED",
+ ]
+ for known_revert_reason in known_revert_reasons:
+ if known_revert_reason in str(exception):
+ return (False, known_revert_reason)
+ return (False, f"Unknown: {exception}")
+
+
+class ECSignature(TypedDict):
+ """Object representation of an elliptic curve signature's parameters."""
+
+ v: int
+ r: str
+ s: str
+
+
+def _parse_signature_hex_as_vrs(signature_hex: str) -> ECSignature:
+ """Parse signature hex as a concatentation of EC parameters ordered V, R, S.
+
+ >>> _parse_signature_hex_as_vrs('0x1b117902c86dfb95fe0d1badd983ee166ad259b27acb220174cbb4460d872871137feabdfe76e05924b484789f79af4ee7fa29ec006cedce1bbf369320d034e10b03')
+ {'v': 27, 'r': '117902c86dfb95fe0d1badd983ee166ad259b27acb220174cbb4460d87287113', 's': '7feabdfe76e05924b484789f79af4ee7fa29ec006cedce1bbf369320d034e10b'}
+ """ # noqa: E501 (line too long)
+ signature: ECSignature = {
+ "v": int(signature_hex[2:4], 16),
+ "r": signature_hex[4:68],
+ "s": signature_hex[68:132],
+ }
+ if signature["v"] == 0 or signature["v"] == 1:
+ signature["v"] = signature["v"] + 27
+ return signature
+
+
+def _parse_signature_hex_as_rsv(signature_hex: str) -> ECSignature:
+ """Parse signature hex as a concatentation of EC parameters ordered R, S, V.
+
+ >>> _parse_signature_hex_as_rsv('0x117902c86dfb95fe0d1badd983ee166ad259b27acb220174cbb4460d872871137feabdfe76e05924b484789f79af4ee7fa29ec006cedce1bbf369320d034e10b00')
+ {'r': '117902c86dfb95fe0d1badd983ee166ad259b27acb220174cbb4460d87287113', 's': '7feabdfe76e05924b484789f79af4ee7fa29ec006cedce1bbf369320d034e10b', 'v': 27}
+ """ # noqa: E501 (line too long)
+ signature: ECSignature = {
+ "r": signature_hex[2:66],
+ "s": signature_hex[66:130],
+ "v": int(signature_hex[130:132], 16),
+ }
+ if signature["v"] == 0 or signature["v"] == 1:
+ signature["v"] = signature["v"] + 27
+ return signature
+
+
+def _convert_ec_signature_to_vrs_hex(signature: ECSignature) -> str:
+ """Convert elliptic curve signature object to hex hash string.
+
+ >>> _convert_ec_signature_to_vrs_hex(
+ ... {
+ ... 'r': '117902c86dfb95fe0d1badd983ee166ad259b27acb220174cbb4460d87287113',
+ ... 's': '7feabdfe76e05924b484789f79af4ee7fa29ec006cedce1bbf369320d034e10b',
+ ... 'v': 27
+ ... }
+ ... )
+ '0x1b117902c86dfb95fe0d1badd983ee166ad259b27acb220174cbb4460d872871137feabdfe76e05924b484789f79af4ee7fa29ec006cedce1bbf369320d034e10b'
+ """ # noqa: E501 (line too long)
+ return (
+ "0x"
+ + signature["v"].to_bytes(1, byteorder="big").hex()
+ + signature["r"]
+ + signature["s"]
+ )
+
+
+def sign_hash(
+ provider: BaseProvider, signer_address: str, hash_hex: str
+) -> str:
+ """Sign a message with the given hash, and return the signature.
+
+ :param provider: A Web3 provider.
+ :param signer_address: The address of the signing account.
+ :param hash_hex: A hex string representing the hash, like that returned
+ from `generate_order_hash_hex()`.
+ :rtype: A string, of ASCII hex digits, representing the signature.
+
+ >>> provider = Web3.HTTPProvider("http://127.0.0.1:8545")
+ >>> sign_hash(
+ ... provider,
+ ... Web3(provider).personal.listAccounts[0],
+ ... '0x34decbedc118904df65f379a175bb39ca18209d6ce41d5ed549d54e6e0a95004',
+ ... )
+ '0x1b117902c86dfb95fe0d1badd983ee166ad259b27acb220174cbb4460d872871137feabdfe76e05924b484789f79af4ee7fa29ec006cedce1bbf369320d034e10b03'
+ """ # noqa: E501 (line too long)
+ assert_is_provider(provider, "provider")
+ assert_is_address(signer_address, "signer_address")
+ assert_is_hex_string(hash_hex, "hash_hex")
+
+ web3_instance = Web3(provider)
+ # false positive from pylint: disable=no-member
+ signature = web3_instance.eth.sign( # type: ignore
+ signer_address, hexstr=hash_hex.replace("0x", "")
+ ).hex()
+
+ valid_v_param_values = [27, 28]
+
+ # HACK: There is no consensus on whether the signatureHex string should be
+ # formatted as v + r + s OR r + s + v, and different clients (even
+ # different versions of the same client) return the signature params in
+ # different orders. In order to support all client implementations, we
+ # parse the signature in both ways, and evaluate if either one is a valid
+ # signature. r + s + v is the most prevalent format from eth_sign, so we
+ # attempt this first.
+
+ ec_signature = _parse_signature_hex_as_rsv(signature)
+ if ec_signature["v"] in valid_v_param_values:
+ signature_as_vrst_hex = (
+ _convert_ec_signature_to_vrs_hex(ec_signature)
+ + _Constants.SignatureType.ETH_SIGN.value.to_bytes(
+ 1, byteorder="big"
+ ).hex()
+ )
+
+ (valid, _) = is_valid_signature(
+ provider, hash_hex, signature_as_vrst_hex, signer_address
+ )
+
+ if valid is True:
+ return signature_as_vrst_hex
+
+ ec_signature = _parse_signature_hex_as_vrs(signature)
+ if ec_signature["v"] in valid_v_param_values:
+ signature_as_vrst_hex = (
+ _convert_ec_signature_to_vrs_hex(ec_signature)
+ + _Constants.SignatureType.ETH_SIGN.value.to_bytes(
+ 1, byteorder="big"
+ ).hex()
+ )
+ (valid, _) = is_valid_signature(
+ provider, hash_hex, signature_as_vrst_hex, signer_address
+ )
+
+ if valid is True:
+ return signature_as_vrst_hex
+
+ raise RuntimeError(
+ "Signature returned from web3 provider is in an unknown format."
+ + " Attempted to parse as RSV and as VRS."
+ )
diff --git a/python-packages/order_utils/src/zero_ex/order_utils/asset_data_utils.py b/python-packages/order_utils/src/zero_ex/order_utils/asset_data_utils.py
index e6f9a07c1..fab7479d2 100644
--- a/python-packages/order_utils/src/zero_ex/order_utils/asset_data_utils.py
+++ b/python-packages/order_utils/src/zero_ex/order_utils/asset_data_utils.py
@@ -47,7 +47,6 @@ def encode_erc20_asset_data(token_address: str) -> str:
def decode_erc20_asset_data(asset_data: str) -> ERC20AssetData:
- # docstring considered all one line by pylint: disable=line-too-long
"""Decode an ERC20 asset data hex string.
:param asset_data: String produced by prior call to encode_erc20_asset_data()
@@ -82,7 +81,6 @@ def decode_erc20_asset_data(asset_data: str) -> ERC20AssetData:
def encode_erc721_asset_data(token_address: str, token_id: int) -> str:
- # docstring considered all one line by pylint: disable=line-too-long
"""Encode an ERC721 asset data hex string.
:param token_address: the ERC721 token's contract address.
@@ -105,7 +103,6 @@ def encode_erc721_asset_data(token_address: str, token_id: int) -> str:
def decode_erc721_asset_data(asset_data: str) -> ERC721AssetData:
- # docstring considered all one line by pylint: disable=line-too-long
"""Decode an ERC721 asset data hex string.
>>> decode_erc721_asset_data('0x025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000001')
@@ -121,7 +118,6 @@ def decode_erc721_asset_data(asset_data: str) -> ERC721AssetData:
)
asset_proxy_id: str = asset_data[0:SELECTOR_LENGTH]
- # prefer `black` formatting. pylint: disable=C0330
if asset_proxy_id != abi_utils.method_id(
"ERC721Token", ["address", "uint256"]
):
diff --git a/python-packages/order_utils/src/zero_ex/order_utils/signature_utils.py b/python-packages/order_utils/src/zero_ex/order_utils/signature_utils.py
deleted file mode 100644
index 2e75be6d5..000000000
--- a/python-packages/order_utils/src/zero_ex/order_utils/signature_utils.py
+++ /dev/null
@@ -1,75 +0,0 @@
-"""Signature utilities."""
-
-from typing import Tuple
-
-from eth_utils import is_address, to_checksum_address
-from web3 import Web3
-import web3.exceptions
-from web3.utils import datatypes
-
-from zero_ex.order_utils import Constants
-from zero_ex.dev_utils.type_assertions import assert_is_hex_string
-
-
-# prefer `black` formatting. pylint: disable=C0330
-def is_valid_signature(
- provider: Web3.HTTPProvider, data: str, signature: str, signer_address: str
-) -> Tuple[bool, str]:
- # docstring considered all one line by pylint: disable=line-too-long
- """Check the validity of the supplied signature.
-
- Check if the supplied ``signature`` corresponds to signing ``data`` with
- the private key corresponding to ``signer_address``.
-
- :param provider: A Web3 provider able to access the 0x Exchange contract.
- :param data: The hex encoded data signed by the supplied signature.
- :param signature: The hex encoded signature.
- :param signer_address: The hex encoded address that signed the data to
- produce the supplied signature.
- :rtype: Boolean indicating whether the given signature is valid.
-
- >>> is_valid_signature(
- ... Web3.HTTPProvider("http://127.0.0.1:8545"),
- ... '0x6927e990021d23b1eb7b8789f6a6feaf98fe104bb0cf8259421b79f9a34222b0',
- ... '0x1B61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc3340349190569279751135161d22529dc25add4f6069af05be04cacbda2ace225403',
- ... '0x5409ed021d9299bf6814279a6a1411a7e866a631',
- ... )
- (True, '')
- """ # noqa: E501 (line too long)
- # TODO: make this provider check more flexible. pylint: disable=fixme
- # https://app.asana.com/0/684263176955174/901300863045491/f
- if not isinstance(provider, Web3.HTTPProvider):
- raise TypeError("provider is not a Web3.HTTPProvider")
- assert_is_hex_string(data, "data")
- assert_is_hex_string(signature, "signature")
- assert_is_hex_string(signer_address, "signer_address")
- if not is_address(signer_address):
- raise ValueError("signer_address is not a valid address")
-
- web3_instance = Web3(provider)
- # false positive from pylint: disable=no-member
- network_id = web3_instance.net.version
- contract_address = Constants.network_to_exchange_addr[network_id]
- # false positive from pylint: disable=no-member
- contract: datatypes.Contract = web3_instance.eth.contract(
- address=to_checksum_address(contract_address),
- abi=Constants.contract_name_to_abi["Exchange"],
- )
- try:
- return (
- contract.call().isValidSignature(
- data, to_checksum_address(signer_address), signature
- ),
- "",
- )
- except web3.exceptions.BadFunctionCallOutput as exception:
- known_revert_reasons = [
- "LENGTH_GREATER_THAN_0_REQUIRED",
- "SIGNATURE_UNSUPPORTED",
- "LENGTH_0_REQUIRED",
- "LENGTH_65_REQUIRED",
- ]
- for known_revert_reason in known_revert_reasons:
- if known_revert_reason in str(exception):
- return (False, known_revert_reason)
- return (False, f"Unknown: {exception}")
diff --git a/python-packages/order_utils/stubs/jsonschema/__init__.pyi b/python-packages/order_utils/stubs/jsonschema/__init__.pyi
new file mode 100644
index 000000000..762b58b22
--- /dev/null
+++ b/python-packages/order_utils/stubs/jsonschema/__init__.pyi
@@ -0,0 +1,5 @@
+from typing import Any, Dict
+
+class RefResolver: pass
+
+def validate(instance: Any, schema: Dict, cls=None, *args, **kwargs) -> None: pass
diff --git a/python-packages/order_utils/stubs/jsonschema/exceptions.pyi b/python-packages/order_utils/stubs/jsonschema/exceptions.pyi
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/python-packages/order_utils/stubs/jsonschema/exceptions.pyi
diff --git a/python-packages/order_utils/stubs/web3/__init__.pyi b/python-packages/order_utils/stubs/web3/__init__.pyi
index fcecc7434..b2af95475 100644
--- a/python-packages/order_utils/stubs/web3/__init__.pyi
+++ b/python-packages/order_utils/stubs/web3/__init__.pyi
@@ -1,12 +1,14 @@
from typing import Dict, Optional, Union
from web3.utils import datatypes
+from web3.providers.base import BaseProvider
class Web3:
- class HTTPProvider: ...
+ class HTTPProvider(BaseProvider):
+ ...
- def __init__(self, provider: HTTPProvider) -> None: ...
+ def __init__(self, provider: BaseProvider) -> None: ...
@staticmethod
def sha3(
diff --git a/python-packages/order_utils/stubs/web3/providers/__init__.pyi b/python-packages/order_utils/stubs/web3/providers/__init__.pyi
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/python-packages/order_utils/stubs/web3/providers/__init__.pyi
diff --git a/python-packages/order_utils/stubs/web3/providers/base.pyi b/python-packages/order_utils/stubs/web3/providers/base.pyi
new file mode 100644
index 000000000..82ca9e3da
--- /dev/null
+++ b/python-packages/order_utils/stubs/web3/providers/base.pyi
@@ -0,0 +1,2 @@
+class BaseProvider:
+ ...
diff --git a/python-packages/order_utils/test/test_doctest.py b/python-packages/order_utils/test/test_doctest.py
index 2b0350ac0..f692b3b6c 100644
--- a/python-packages/order_utils/test/test_doctest.py
+++ b/python-packages/order_utils/test/test_doctest.py
@@ -8,7 +8,6 @@ import zero_ex
def test_all_doctests():
"""Gather zero_ex.* modules and doctest them."""
- # prefer `black` formatting. pylint: disable=bad-continuation
for (importer, modname, _) in pkgutil.walk_packages(
path=zero_ex.__path__, prefix="zero_ex."
):
diff --git a/python-packages/order_utils/test/test_generate_order_hash_hex.py b/python-packages/order_utils/test/test_generate_order_hash_hex.py
index e393f38d7..6869a40ed 100644
--- a/python-packages/order_utils/test/test_generate_order_hash_hex.py
+++ b/python-packages/order_utils/test/test_generate_order_hash_hex.py
@@ -1,10 +1,6 @@
"""Test zero_ex.order_utils.get_order_hash_hex()."""
-from zero_ex.order_utils import (
- generate_order_hash_hex,
- make_empty_order,
- Constants,
-)
+from zero_ex.order_utils import generate_order_hash_hex, make_empty_order
def test_get_order_hash_hex__empty_order():
@@ -12,7 +8,5 @@ def test_get_order_hash_hex__empty_order():
expected_hash_hex = (
"faa49b35faeb9197e9c3ba7a52075e6dad19739549f153b77dfcf59408a4b422"
)
- actual_hash_hex = generate_order_hash_hex(
- make_empty_order(), Constants.null_address
- )
+ actual_hash_hex = generate_order_hash_hex(make_empty_order())
assert actual_hash_hex == expected_hash_hex
diff --git a/python-packages/order_utils/test/test_signature_utils.py b/python-packages/order_utils/test/test_signature_utils.py
index b688e03a1..c5acc9d62 100644
--- a/python-packages/order_utils/test/test_signature_utils.py
+++ b/python-packages/order_utils/test/test_signature_utils.py
@@ -3,7 +3,7 @@
import pytest
from web3 import Web3
-from zero_ex.order_utils.signature_utils import is_valid_signature
+from zero_ex.order_utils import is_valid_signature
def test_is_valid_signature__provider_wrong_type():