diff --git a/docs/Main-commands.md b/docs/Main-commands.md
index 1959cc841..219a9937f 100644
--- a/docs/Main-commands.md
+++ b/docs/Main-commands.md
@@ -20,6 +20,7 @@ Available options to customize the `run` command:
 - `--reset`: If reset is present it will reset the devchain before running. The chain will then start from scratch and all published packages will need to be recreated.
 - `--port`: The port where the devchain will be started.
 - `--network-id`: Network id to connect with.
+- `--hardfork`: Allows to specify which hardfork should be used. Supported hardforks are byzantium, constantinople, petersburg, and istanbul (default).
 - `--block-time`: Specify blockTime in seconds for automatic mining.
 - `--accounts`: Number of accounts to print. Defaults to `2`.
 - `--files`: The path to the files that will be published. Defaults to the current directory.
@@ -96,6 +97,7 @@ Options:
 - `--reset`: Resets the devchain to the snapshot.
 - `--port`: The port number where the devchain will be started. Defaults to `8545`.
 - `--network-id`: Network id to connect with.
+- `--hardfork`: Allows to specify which hardfork should be used. Supported hardforks are byzantium, constantinople, petersburg, and istanbul (default).
 - `--block-time`: Specify blockTime in seconds for automatic mining.
 - `--gas-limit`: Block gas limit. Must be specified as a hex string.
 - `--accounts`: Number of accounts to print.
diff --git a/packages/cli/npm-shrinkwrap.json b/packages/cli/npm-shrinkwrap.json
index 9ddb39247..0d8a36cf2 100644
--- a/packages/cli/npm-shrinkwrap.json
+++ b/packages/cli/npm-shrinkwrap.json
@@ -21033,9 +21033,9 @@
       }
     },
     "ganache-core": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.8.0.tgz",
-      "integrity": "sha512-hfXqZGJx700jJqwDHNXrU2BnPYuETn1ekm36oRHuXY3oOuJLFs5C+cFdUFaBlgUxcau1dOgZUUwKqTAy0gTA9Q==",
+      "version": "2.9.1",
+      "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.9.1.tgz",
+      "integrity": "sha512-AE6Z9mZEy8Z9NBjHBEAzTGX6OMhRypp03LRKBJUqV4dSVDD6L7iqUbZvjILBwSqRyZV4v+ASxI9Hm4MBWp2uwA==",
       "dev": true,
       "requires": {
         "abstract-leveldown": "3.0.0",
@@ -21048,10 +21048,11 @@
         "eth-sig-util": "2.3.0",
         "ethereumjs-abi": "0.6.7",
         "ethereumjs-account": "3.0.0",
-        "ethereumjs-block": "2.2.0",
-        "ethereumjs-tx": "1.3.7",
+        "ethereumjs-block": "2.2.1",
+        "ethereumjs-common": "1.4.0",
+        "ethereumjs-tx": "2.1.1",
         "ethereumjs-util": "6.1.0",
-        "ethereumjs-vm": "3.0.0",
+        "ethereumjs-vm": "4.1.1",
         "ethereumjs-wallet": "0.6.3",
         "heap": "0.2.6",
         "level-sublevel": "6.6.4",
@@ -21061,7 +21062,7 @@
         "seedrandom": "3.0.1",
         "source-map-support": "0.5.12",
         "tmp": "0.1.0",
-        "web3": "1.2.1",
+        "web3": "1.2.4",
         "web3-provider-engine": "14.2.1",
         "websocket": "1.0.29"
       },
@@ -21270,6 +21271,16 @@
             "defer-to-connect": "^1.0.1"
           }
         },
+        "@types/bignumber.js": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz",
+          "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "bignumber.js": "*"
+          }
+        },
         "@types/bn.js": {
           "version": "4.11.5",
           "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.5.tgz",
@@ -21297,6 +21308,73 @@
             "@types/underscore": "*"
           }
         },
+        "@web3-js/scrypt-shim": {
+          "version": "0.1.0",
+          "resolved": "https://registry.npmjs.org/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz",
+          "integrity": "sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "scryptsy": "^2.1.0",
+            "semver": "^6.3.0"
+          },
+          "dependencies": {
+            "scryptsy": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz",
+              "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==",
+              "dev": true,
+              "optional": true
+            },
+            "semver": {
+              "version": "6.3.0",
+              "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+              "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+              "dev": true,
+              "optional": true
+            }
+          }
+        },
+        "@web3-js/websocket": {
+          "version": "1.0.30",
+          "resolved": "https://registry.npmjs.org/@web3-js/websocket/-/websocket-1.0.30.tgz",
+          "integrity": "sha512-fDwrD47MiDrzcJdSeTLF75aCcxVVt8B1N74rA+vh2XCAvFy4tEWJjtnUtj2QG7/zlQ6g9cQ88bZFBxwd9/FmtA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "debug": "^2.2.0",
+            "es5-ext": "^0.10.50",
+            "nan": "^2.14.0",
+            "typedarray-to-buffer": "^3.1.5",
+            "yaeti": "^0.0.6"
+          },
+          "dependencies": {
+            "debug": {
+              "version": "2.6.9",
+              "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+              "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "ms": "2.0.0"
+              }
+            },
+            "ms": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+              "dev": true,
+              "optional": true
+            },
+            "nan": {
+              "version": "2.14.0",
+              "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+              "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
+              "dev": true,
+              "optional": true
+            }
+          }
+        },
         "@webassemblyjs/ast": {
           "version": "1.5.13",
           "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.5.13.tgz",
@@ -22702,6 +22780,13 @@
           "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
           "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
         },
+        "bignumber.js": {
+          "version": "9.0.0",
+          "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
+          "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==",
+          "dev": true,
+          "optional": true
+        },
         "binary-extensions": {
           "version": "1.13.1",
           "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
@@ -22732,7 +22817,6 @@
           "version": "1.1.5",
           "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz",
           "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=",
-          "dev": true,
           "requires": {
             "safe-buffer": "^5.0.1"
           }
@@ -23642,6 +23726,12 @@
           "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
           "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
         },
+        "core-js-pure": {
+          "version": "3.4.7",
+          "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.4.7.tgz",
+          "integrity": "sha512-Am3uRS8WCdTFA3lP7LtKR0PxgqYzjAMGKXaZKSNSC/8sqU0Wfq8R/YzoRs2rqtOVEunfgH+0q3O0BKOg0AvjPw==",
+          "dev": true
+        },
         "core-util-is": {
           "version": "1.0.2",
           "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
@@ -24040,9 +24130,9 @@
           "dev": true
         },
         "defer-to-connect": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.2.tgz",
-          "integrity": "sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw==",
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.1.tgz",
+          "integrity": "sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ==",
           "dev": true,
           "optional": true
         },
@@ -24227,7 +24317,6 @@
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz",
           "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=",
-          "dev": true,
           "requires": {
             "browserify-aes": "^1.0.6",
             "create-hash": "^1.1.2",
@@ -24851,6 +24940,16 @@
             "tape": "^4.6.3"
           },
           "dependencies": {
+            "ethereumjs-tx": {
+              "version": "1.3.7",
+              "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+              "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+              "dev": true,
+              "requires": {
+                "ethereum-common": "^0.0.18",
+                "ethereumjs-util": "^5.0.0"
+              }
+            },
             "ethereumjs-util": {
               "version": "5.2.0",
               "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz",
@@ -24958,6 +25057,24 @@
                 "merkle-patricia-tree": "^2.1.2"
               }
             },
+            "ethereumjs-tx": {
+              "version": "1.3.7",
+              "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+              "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+              "dev": true,
+              "requires": {
+                "ethereum-common": "^0.0.18",
+                "ethereumjs-util": "^5.0.0"
+              },
+              "dependencies": {
+                "ethereum-common": {
+                  "version": "0.0.18",
+                  "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz",
+                  "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=",
+                  "dev": true
+                }
+              }
+            },
             "ethereumjs-util": {
               "version": "5.2.0",
               "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz",
@@ -25042,15 +25159,14 @@
           }
         },
         "eth-lib": {
-          "version": "0.1.27",
-          "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz",
-          "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==",
+          "version": "0.1.29",
+          "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
+          "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
           "dev": true,
           "optional": true,
           "requires": {
             "bn.js": "^4.11.6",
             "elliptic": "^6.4.0",
-            "keccakjs": "^0.2.1",
             "nano-json-stream-parser": "^0.1.2",
             "servify": "^0.1.12",
             "ws": "^3.0.0",
@@ -25171,6 +25287,24 @@
                 "merkle-patricia-tree": "^2.1.2"
               }
             },
+            "ethereumjs-tx": {
+              "version": "1.3.7",
+              "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+              "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+              "dev": true,
+              "requires": {
+                "ethereum-common": "^0.0.18",
+                "ethereumjs-util": "^5.0.0"
+              },
+              "dependencies": {
+                "ethereum-common": {
+                  "version": "0.0.18",
+                  "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz",
+                  "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=",
+                  "dev": true
+                }
+              }
+            },
             "ethereumjs-util": {
               "version": "5.2.0",
               "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz",
@@ -25287,6 +25421,25 @@
             }
           }
         },
+        "ethereum-bloom-filters": {
+          "version": "1.0.6",
+          "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.6.tgz",
+          "integrity": "sha512-dE9CGNzgOOsdh7msZirvv8qjHtnHpvBlKe2647kM8v+yeF71IRso55jpojemvHV+jMjr48irPWxMRaHuOWzAFA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "js-sha3": "^0.8.0"
+          },
+          "dependencies": {
+            "js-sha3": {
+              "version": "0.8.0",
+              "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+              "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
+              "dev": true,
+              "optional": true
+            }
+          }
+        },
         "ethereum-common": {
           "version": "0.0.18",
           "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz",
@@ -25315,14 +25468,14 @@
           }
         },
         "ethereumjs-block": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.0.tgz",
-          "integrity": "sha512-Ye+uG/L2wrp364Zihdlr/GfC3ft+zG8PdHcRtsBFNNH1CkOhxOwdB8friBU85n89uRZ9eIMAywCq0F4CwT1wAw==",
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.1.tgz",
+          "integrity": "sha512-ze8I1844m5oKZL7hiHuezRcPzqdi4Iv0ssqQyuRaJ9Je0/YCYfXobJHvNLnex2ETgs5JypicdtLYrCNWdgcLvg==",
           "dev": true,
           "requires": {
             "async": "^2.0.1",
             "ethereumjs-common": "^1.1.0",
-            "ethereumjs-tx": "^1.2.2",
+            "ethereumjs-tx": "^2.1.1",
             "ethereumjs-util": "^5.0.0",
             "merkle-patricia-tree": "^2.1.2"
           },
@@ -25345,38 +25498,23 @@
           }
         },
         "ethereumjs-blockchain": {
-          "version": "3.4.0",
-          "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-3.4.0.tgz",
-          "integrity": "sha512-wxPSmt6EQjhbywkFbftKcb0qRFIZWocHMuDa8/AB4eWL/UPYalNcDyLaxYbrDytmhHid3Uu8G/tA3C/TxZBuOQ==",
+          "version": "4.0.2",
+          "resolved": "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.2.tgz",
+          "integrity": "sha512-K7N7EJpDQJXX634uEuXRk3pIH058SPeu+g0xQslViQyaTpJNTHsN5Wu/MdA5BzrUriBRlfmX9lCEaU4ZuaftJA==",
           "dev": true,
           "requires": {
             "async": "^2.6.1",
             "ethashjs": "~0.0.7",
-            "ethereumjs-block": "~2.2.0",
+            "ethereumjs-block": "~2.2.1",
             "ethereumjs-common": "^1.1.0",
-            "ethereumjs-util": "~6.0.0",
+            "ethereumjs-util": "~6.1.0",
             "flow-stoplight": "^1.0.0",
             "level-mem": "^3.0.1",
             "lru-cache": "^5.1.1",
-            "safe-buffer": "^5.1.2",
+            "rlp": "^2.2.2",
             "semaphore": "^1.1.0"
           },
           "dependencies": {
-            "ethereumjs-util": {
-              "version": "6.0.0",
-              "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.0.0.tgz",
-              "integrity": "sha512-E3yKUyl0Fs95nvTFQZe/ZSNcofhDzUsDlA5y2uoRmf1+Ec7gpGhNCsgKkZBRh7Br5op8mJcYF/jFbmjj909+nQ==",
-              "dev": true,
-              "requires": {
-                "bn.js": "^4.11.0",
-                "create-hash": "^1.1.2",
-                "ethjs-util": "^0.1.6",
-                "keccak": "^1.0.2",
-                "rlp": "^2.0.0",
-                "safe-buffer": "^5.1.1",
-                "secp256k1": "^3.0.1"
-              }
-            },
             "lru-cache": {
               "version": "5.1.1",
               "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -25389,36 +25527,19 @@
           }
         },
         "ethereumjs-common": {
-          "version": "1.3.1",
-          "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.3.1.tgz",
-          "integrity": "sha512-kexqNgM2q29RKoZPPjehPREeqbr/vhYfT9Ho8FVeH3f7USjBuYp1iZ1qjqklk8FSMvEKPpMJFYSOunikw30Prw==",
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.4.0.tgz",
+          "integrity": "sha512-ser2SAplX/YI5W2AnzU8wmSjKRy4KQd4uxInJ36BzjS3m18E/B9QedPUIresZN1CSEQb/RgNQ2gN7C/XbpTafA==",
           "dev": true
         },
         "ethereumjs-tx": {
-          "version": "1.3.7",
-          "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
-          "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.1.tgz",
+          "integrity": "sha512-QtVriNqowCFA19X9BCRPMgdVNJ0/gMBS91TQb1DfrhsbR748g4STwxZptFAwfqehMyrF8rDwB23w87PQwru0wA==",
           "dev": true,
           "requires": {
-            "ethereum-common": "^0.0.18",
-            "ethereumjs-util": "^5.0.0"
-          },
-          "dependencies": {
-            "ethereumjs-util": {
-              "version": "5.2.0",
-              "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz",
-              "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==",
-              "dev": true,
-              "requires": {
-                "bn.js": "^4.11.0",
-                "create-hash": "^1.1.2",
-                "ethjs-util": "^0.1.3",
-                "keccak": "^1.0.2",
-                "rlp": "^2.0.0",
-                "safe-buffer": "^5.1.1",
-                "secp256k1": "^3.0.1"
-              }
-            }
+            "ethereumjs-common": "^1.3.1",
+            "ethereumjs-util": "^6.0.0"
           }
         },
         "ethereumjs-util": {
@@ -25437,53 +25558,26 @@
           }
         },
         "ethereumjs-vm": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-3.0.0.tgz",
-          "integrity": "sha512-lNu+G/RWPRCrQM5s24MqgU75PEGiAhL4Ombw0ew6m08d+amsxf/vGAb98yDNdQqqHKV6JbwO/tCGfdqXGI6Cug==",
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.1.1.tgz",
+          "integrity": "sha512-Bh2avDY9Hyon9TvJ/fmkdyd5JDnmTudLJ5oKhmTfXn0Jjq7UzP4YRNp7e5PWoWXSmdXAGXU9W0DXK5TV9Qy/NQ==",
           "dev": true,
           "requires": {
             "async": "^2.1.2",
             "async-eventemitter": "^0.2.2",
-            "ethereumjs-account": "^2.0.3",
-            "ethereumjs-block": "~2.2.0",
-            "ethereumjs-blockchain": "^3.4.0",
-            "ethereumjs-common": "^1.1.0",
-            "ethereumjs-util": "^6.0.0",
+            "core-js-pure": "^3.0.1",
+            "ethereumjs-account": "^3.0.0",
+            "ethereumjs-block": "^2.2.1",
+            "ethereumjs-blockchain": "^4.0.2",
+            "ethereumjs-common": "^1.3.2",
+            "ethereumjs-tx": "^2.1.1",
+            "ethereumjs-util": "~6.1.0",
             "fake-merkle-patricia-tree": "^1.0.1",
             "functional-red-black-tree": "^1.0.1",
             "merkle-patricia-tree": "^2.3.2",
             "rustbn.js": "~0.2.0",
-            "safe-buffer": "^5.1.1"
-          },
-          "dependencies": {
-            "ethereumjs-account": {
-              "version": "2.0.5",
-              "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz",
-              "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==",
-              "dev": true,
-              "requires": {
-                "ethereumjs-util": "^5.0.0",
-                "rlp": "^2.0.0",
-                "safe-buffer": "^5.1.1"
-              },
-              "dependencies": {
-                "ethereumjs-util": {
-                  "version": "5.2.0",
-                  "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz",
-                  "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==",
-                  "dev": true,
-                  "requires": {
-                    "bn.js": "^4.11.0",
-                    "create-hash": "^1.1.2",
-                    "ethjs-util": "^0.1.3",
-                    "keccak": "^1.0.2",
-                    "rlp": "^2.0.0",
-                    "safe-buffer": "^5.1.1",
-                    "secp256k1": "^3.0.1"
-                  }
-                }
-              }
-            }
+            "safe-buffer": "^5.1.1",
+            "util.promisify": "^1.0.0"
           }
         },
         "ethereumjs-wallet": {
@@ -25592,7 +25686,6 @@
           "version": "0.1.6",
           "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
           "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
-          "dev": true,
           "requires": {
             "is-hex-prefixed": "1.0.0",
             "strip-hex-prefix": "1.0.0"
@@ -26294,13 +26387,13 @@
           }
         },
         "fs-minipass": {
-          "version": "1.2.6",
-          "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz",
-          "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==",
+          "version": "1.2.7",
+          "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+          "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
           "dev": true,
           "optional": true,
           "requires": {
-            "minipass": "^2.2.1"
+            "minipass": "^2.6.0"
           }
         },
         "fs-mkdirp-stream": {
@@ -27703,7 +27796,8 @@
         "invert-kv": {
           "version": "1.0.0",
           "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
-          "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+          "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+          "dev": true
         },
         "ipaddr.js": {
           "version": "1.9.0",
@@ -27866,8 +27960,7 @@
         "is-hex-prefixed": {
           "version": "1.0.0",
           "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
-          "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=",
-          "dev": true
+          "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ="
         },
         "is-natural-number": {
           "version": "4.0.1",
@@ -27990,9 +28083,9 @@
           "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
         },
         "is-retry-allowed": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
-          "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+          "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
           "dev": true,
           "optional": true
         },
@@ -28405,6 +28498,7 @@
           "version": "1.0.0",
           "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
           "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+          "dev": true,
           "requires": {
             "invert-kv": "^1.0.0"
           }
@@ -29238,21 +29332,6 @@
           "dev": true,
           "optional": true
         },
-        "mem": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
-          "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
-          "requires": {
-            "mimic-fn": "^1.0.0"
-          },
-          "dependencies": {
-            "mimic-fn": {
-              "version": "1.2.0",
-              "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
-              "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
-            }
-          }
-        },
         "memdown": {
           "version": "1.4.1",
           "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
@@ -29489,9 +29568,9 @@
           "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
         },
         "minipass": {
-          "version": "2.3.5",
-          "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
-          "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
+          "version": "2.9.0",
+          "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+          "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
           "dev": true,
           "optional": true,
           "requires": {
@@ -29500,13 +29579,13 @@
           }
         },
         "minizlib": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
-          "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
+          "version": "1.3.3",
+          "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+          "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
           "dev": true,
           "optional": true,
           "requires": {
-            "minipass": "^2.2.1"
+            "minipass": "^2.9.0"
           }
         },
         "mississippi": {
@@ -29628,9 +29707,9 @@
           "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q="
         },
         "mock-fs": {
-          "version": "4.10.1",
-          "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.10.1.tgz",
-          "integrity": "sha512-w22rOL5ZYu6HbUehB5deurghGM0hS/xBVyHMGKOuQctkk93J9z9VEOhDsiWrXOprVNQpP9uzGKdl8v9mFspKuw==",
+          "version": "4.10.4",
+          "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.10.4.tgz",
+          "integrity": "sha512-gDfZDLaPIvtOusbusLinfx6YSe2YpQsDT8qdP41P47dQ/NQggtkHukz7hwqgt8QvMBmAv+Z6DGmXPyb5BWX2nQ==",
           "dev": true,
           "optional": true
         },
@@ -29837,9 +29916,9 @@
           }
         },
         "normalize-url": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.3.0.tgz",
-          "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==",
+          "version": "4.5.0",
+          "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+          "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
           "dev": true,
           "optional": true
         },
@@ -30208,6 +30287,16 @@
             "isobject": "^3.0.0"
           }
         },
+        "object.getownpropertydescriptors": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+          "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+          "dev": true,
+          "requires": {
+            "define-properties": "^1.1.2",
+            "es-abstract": "^1.5.1"
+          }
+        },
         "object.map": {
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
@@ -30921,13 +31010,6 @@
             "safe-buffer": "^5.1.0"
           }
         },
-        "randomhex": {
-          "version": "0.1.5",
-          "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz",
-          "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=",
-          "dev": true,
-          "optional": true
-        },
         "range-parser": {
           "version": "1.2.1",
           "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -31318,7 +31400,6 @@
           "version": "2.2.3",
           "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.3.tgz",
           "integrity": "sha512-l6YVrI7+d2vpW6D6rS05x2Xrmq8oW7v3pieZOJKBEdjuTF4Kz/iwk55Zyh1Zaz+KOB2kC8+2jZlp2u9L4tTzCQ==",
-          "dev": true,
           "requires": {
             "bn.js": "^4.11.1",
             "safe-buffer": "^5.1.1"
@@ -31438,7 +31519,6 @@
           "version": "3.7.1",
           "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz",
           "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==",
-          "dev": true,
           "requires": {
             "bindings": "^1.5.0",
             "bip66": "^1.1.5",
@@ -31453,8 +31533,7 @@
             "nan": {
               "version": "2.14.0",
               "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
-              "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
-              "dev": true
+              "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
             }
           }
         },
@@ -31845,71 +31924,24 @@
           }
         },
         "solc": {
-          "version": "0.5.10",
-          "resolved": "https://registry.npmjs.org/solc/-/solc-0.5.10.tgz",
-          "integrity": "sha512-Stdrh/MDkopsXYPRzPehTNYuV80Grr2CnQMuFvWj+EeRVbe3piGHxW47KebWn1sGdmK8FLaMfUehccqJP0KovQ==",
+          "version": "0.5.13",
+          "resolved": "https://registry.npmjs.org/solc/-/solc-0.5.13.tgz",
+          "integrity": "sha512-osybDVPGjAqcmSKLU3vh5iHuxbhGlJjQI5ZvI7nRDR0fgblQqYte4MGvNjbew8DPvCrmoH0ZBiz/KBBLlPxfMg==",
           "requires": {
             "command-exists": "^1.2.8",
+            "commander": "3.0.2",
             "fs-extra": "^0.30.0",
-            "keccak": "^1.0.2",
+            "js-sha3": "0.8.0",
             "memorystream": "^0.3.1",
             "require-from-string": "^2.0.0",
             "semver": "^5.5.0",
-            "tmp": "0.0.33",
-            "yargs": "^11.0.0"
+            "tmp": "0.0.33"
           },
           "dependencies": {
-            "ansi-regex": {
-              "version": "3.0.0",
-              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-              "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
-            },
-            "camelcase": {
-              "version": "4.1.0",
-              "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-              "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
-            },
-            "cliui": {
-              "version": "4.1.0",
-              "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-              "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
-              "requires": {
-                "string-width": "^2.1.1",
-                "strip-ansi": "^4.0.0",
-                "wrap-ansi": "^2.0.0"
-              }
-            },
-            "cross-spawn": {
-              "version": "5.1.0",
-              "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
-              "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-              "requires": {
-                "lru-cache": "^4.0.1",
-                "shebang-command": "^1.2.0",
-                "which": "^1.2.9"
-              }
-            },
-            "execa": {
-              "version": "0.7.0",
-              "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
-              "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
-              "requires": {
-                "cross-spawn": "^5.0.1",
-                "get-stream": "^3.0.0",
-                "is-stream": "^1.1.0",
-                "npm-run-path": "^2.0.0",
-                "p-finally": "^1.0.0",
-                "signal-exit": "^3.0.0",
-                "strip-eof": "^1.0.0"
-              }
-            },
-            "find-up": {
-              "version": "2.1.0",
-              "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
-              "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
-              "requires": {
-                "locate-path": "^2.0.0"
-              }
+            "commander": {
+              "version": "3.0.2",
+              "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
+              "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
             },
             "fs-extra": {
               "version": "0.30.0",
@@ -31923,15 +31955,10 @@
                 "rimraf": "^2.2.8"
               }
             },
-            "get-stream": {
-              "version": "3.0.0",
-              "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
-              "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
-            },
-            "is-fullwidth-code-point": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-              "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+            "js-sha3": {
+              "version": "0.8.0",
+              "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+              "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
             },
             "jsonfile": {
               "version": "2.4.0",
@@ -31941,42 +31968,6 @@
                 "graceful-fs": "^4.1.6"
               }
             },
-            "lru-cache": {
-              "version": "4.1.5",
-              "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
-              "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
-              "requires": {
-                "pseudomap": "^1.0.2",
-                "yallist": "^2.1.2"
-              }
-            },
-            "os-locale": {
-              "version": "2.1.0",
-              "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
-              "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
-              "requires": {
-                "execa": "^0.7.0",
-                "lcid": "^1.0.0",
-                "mem": "^1.1.0"
-              }
-            },
-            "string-width": {
-              "version": "2.1.1",
-              "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-              "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-              "requires": {
-                "is-fullwidth-code-point": "^2.0.0",
-                "strip-ansi": "^4.0.0"
-              }
-            },
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            },
             "tmp": {
               "version": "0.0.33",
               "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -31984,43 +31975,6 @@
               "requires": {
                 "os-tmpdir": "~1.0.2"
               }
-            },
-            "which-module": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-              "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
-            },
-            "yallist": {
-              "version": "2.1.2",
-              "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
-              "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
-            },
-            "yargs": {
-              "version": "11.1.0",
-              "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz",
-              "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
-              "requires": {
-                "cliui": "^4.0.0",
-                "decamelize": "^1.1.1",
-                "find-up": "^2.1.0",
-                "get-caller-file": "^1.0.1",
-                "os-locale": "^2.0.0",
-                "require-directory": "^2.1.1",
-                "require-main-filename": "^1.0.1",
-                "set-blocking": "^2.0.0",
-                "string-width": "^2.0.0",
-                "which-module": "^2.0.0",
-                "y18n": "^3.2.1",
-                "yargs-parser": "^9.0.2"
-              }
-            },
-            "yargs-parser": {
-              "version": "9.0.2",
-              "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
-              "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
-              "requires": {
-                "camelcase": "^4.1.0"
-              }
             }
           }
         },
@@ -32332,7 +32286,6 @@
           "version": "1.0.0",
           "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
           "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=",
-          "dev": true,
           "requires": {
             "is-hex-prefixed": "1.0.0"
           }
@@ -32545,15 +32498,15 @@
           }
         },
         "tar": {
-          "version": "4.4.10",
-          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz",
-          "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==",
+          "version": "4.4.13",
+          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
+          "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
           "dev": true,
           "optional": true,
           "requires": {
             "chownr": "^1.1.1",
             "fs-minipass": "^1.2.5",
-            "minipass": "^2.3.5",
+            "minipass": "^2.8.6",
             "minizlib": "^1.2.1",
             "mkdirp": "^0.5.0",
             "safe-buffer": "^5.1.2",
@@ -33396,6 +33349,16 @@
           "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
           "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
         },
+        "util.promisify": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+          "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+          "dev": true,
+          "requires": {
+            "define-properties": "^1.1.2",
+            "object.getownpropertydescriptors": "^2.0.3"
+          }
+        },
         "utils-merge": {
           "version": "1.0.1",
           "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
@@ -33524,76 +33487,99 @@
           }
         },
         "web3": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz",
-          "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.4.tgz",
+          "integrity": "sha512-xPXGe+w0x0t88Wj+s/dmAdASr3O9wmA9mpZRtixGZxmBexAF0MjfqYM+MS4tVl5s11hMTN3AZb8cDD4VLfC57A==",
           "dev": true,
           "optional": true,
           "requires": {
-            "web3-bzz": "1.2.1",
-            "web3-core": "1.2.1",
-            "web3-eth": "1.2.1",
-            "web3-eth-personal": "1.2.1",
-            "web3-net": "1.2.1",
-            "web3-shh": "1.2.1",
-            "web3-utils": "1.2.1"
+            "@types/node": "^12.6.1",
+            "web3-bzz": "1.2.4",
+            "web3-core": "1.2.4",
+            "web3-eth": "1.2.4",
+            "web3-eth-personal": "1.2.4",
+            "web3-net": "1.2.4",
+            "web3-shh": "1.2.4",
+            "web3-utils": "1.2.4"
+          },
+          "dependencies": {
+            "@types/node": {
+              "version": "12.12.14",
+              "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz",
+              "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==",
+              "dev": true,
+              "optional": true
+            }
           }
         },
         "web3-bzz": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz",
-          "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.4.tgz",
+          "integrity": "sha512-MqhAo/+0iQSMBtt3/QI1rU83uvF08sYq8r25+OUZ+4VtihnYsmkkca+rdU0QbRyrXY2/yGIpI46PFdh0khD53A==",
           "dev": true,
           "optional": true,
           "requires": {
+            "@types/node": "^10.12.18",
             "got": "9.6.0",
             "swarm-js": "0.1.39",
             "underscore": "1.9.1"
           }
         },
         "web3-core": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz",
-          "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.4.tgz",
+          "integrity": "sha512-CHc27sMuET2cs1IKrkz7xzmTdMfZpYswe7f0HcuyneTwS1yTlTnHyqjAaTy0ZygAb/x4iaVox+Gvr4oSAqSI+A==",
           "dev": true,
           "optional": true,
           "requires": {
-            "web3-core-helpers": "1.2.1",
-            "web3-core-method": "1.2.1",
-            "web3-core-requestmanager": "1.2.1",
-            "web3-utils": "1.2.1"
+            "@types/bignumber.js": "^5.0.0",
+            "@types/bn.js": "^4.11.4",
+            "@types/node": "^12.6.1",
+            "web3-core-helpers": "1.2.4",
+            "web3-core-method": "1.2.4",
+            "web3-core-requestmanager": "1.2.4",
+            "web3-utils": "1.2.4"
+          },
+          "dependencies": {
+            "@types/node": {
+              "version": "12.12.14",
+              "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz",
+              "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==",
+              "dev": true,
+              "optional": true
+            }
           }
         },
         "web3-core-helpers": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz",
-          "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.4.tgz",
+          "integrity": "sha512-U7wbsK8IbZvF3B7S+QMSNP0tni/6VipnJkB0tZVEpHEIV2WWeBHYmZDnULWcsS/x/jn9yKhJlXIxWGsEAMkjiw==",
           "dev": true,
           "optional": true,
           "requires": {
             "underscore": "1.9.1",
-            "web3-eth-iban": "1.2.1",
-            "web3-utils": "1.2.1"
+            "web3-eth-iban": "1.2.4",
+            "web3-utils": "1.2.4"
           }
         },
         "web3-core-method": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz",
-          "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.4.tgz",
+          "integrity": "sha512-8p9kpL7di2qOVPWgcM08kb+yKom0rxRCMv6m/K+H+yLSxev9TgMbCgMSbPWAHlyiF3SJHw7APFKahK5Z+8XT5A==",
           "dev": true,
           "optional": true,
           "requires": {
             "underscore": "1.9.1",
-            "web3-core-helpers": "1.2.1",
-            "web3-core-promievent": "1.2.1",
-            "web3-core-subscriptions": "1.2.1",
-            "web3-utils": "1.2.1"
+            "web3-core-helpers": "1.2.4",
+            "web3-core-promievent": "1.2.4",
+            "web3-core-subscriptions": "1.2.4",
+            "web3-utils": "1.2.4"
           }
         },
         "web3-core-promievent": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz",
-          "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.4.tgz",
+          "integrity": "sha512-gEUlm27DewUsfUgC3T8AxkKi8Ecx+e+ZCaunB7X4Qk3i9F4C+5PSMGguolrShZ7Zb6717k79Y86f3A00O0VAZw==",
           "dev": true,
           "optional": true,
           "requires": {
@@ -33602,63 +33588,63 @@
           }
         },
         "web3-core-requestmanager": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz",
-          "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.4.tgz",
+          "integrity": "sha512-eZJDjyNTDtmSmzd3S488nR/SMJtNnn/GuwxnMh3AzYCqG3ZMfOylqTad2eYJPvc2PM5/Gj1wAMQcRpwOjjLuPg==",
           "dev": true,
           "optional": true,
           "requires": {
             "underscore": "1.9.1",
-            "web3-core-helpers": "1.2.1",
-            "web3-providers-http": "1.2.1",
-            "web3-providers-ipc": "1.2.1",
-            "web3-providers-ws": "1.2.1"
+            "web3-core-helpers": "1.2.4",
+            "web3-providers-http": "1.2.4",
+            "web3-providers-ipc": "1.2.4",
+            "web3-providers-ws": "1.2.4"
           }
         },
         "web3-core-subscriptions": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz",
-          "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.4.tgz",
+          "integrity": "sha512-3D607J2M8ymY9V+/WZq4MLlBulwCkwEjjC2U+cXqgVO1rCyVqbxZNCmHyNYHjDDCxSEbks9Ju5xqJxDSxnyXEw==",
           "dev": true,
           "optional": true,
           "requires": {
             "eventemitter3": "3.1.2",
             "underscore": "1.9.1",
-            "web3-core-helpers": "1.2.1"
+            "web3-core-helpers": "1.2.4"
           }
         },
         "web3-eth": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz",
-          "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.4.tgz",
+          "integrity": "sha512-+j+kbfmZsbc3+KJpvHM16j1xRFHe2jBAniMo1BHKc3lho6A8Sn9Buyut6odubguX2AxoRArCdIDCkT9hjUERpA==",
           "dev": true,
           "optional": true,
           "requires": {
             "underscore": "1.9.1",
-            "web3-core": "1.2.1",
-            "web3-core-helpers": "1.2.1",
-            "web3-core-method": "1.2.1",
-            "web3-core-subscriptions": "1.2.1",
-            "web3-eth-abi": "1.2.1",
-            "web3-eth-accounts": "1.2.1",
-            "web3-eth-contract": "1.2.1",
-            "web3-eth-ens": "1.2.1",
-            "web3-eth-iban": "1.2.1",
-            "web3-eth-personal": "1.2.1",
-            "web3-net": "1.2.1",
-            "web3-utils": "1.2.1"
+            "web3-core": "1.2.4",
+            "web3-core-helpers": "1.2.4",
+            "web3-core-method": "1.2.4",
+            "web3-core-subscriptions": "1.2.4",
+            "web3-eth-abi": "1.2.4",
+            "web3-eth-accounts": "1.2.4",
+            "web3-eth-contract": "1.2.4",
+            "web3-eth-ens": "1.2.4",
+            "web3-eth-iban": "1.2.4",
+            "web3-eth-personal": "1.2.4",
+            "web3-net": "1.2.4",
+            "web3-utils": "1.2.4"
           }
         },
         "web3-eth-abi": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz",
-          "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.4.tgz",
+          "integrity": "sha512-8eLIY4xZKoU3DSVu1pORluAw9Ru0/v4CGdw5so31nn+7fR8zgHMgwbFe0aOqWQ5VU42PzMMXeIJwt4AEi2buFg==",
           "dev": true,
           "optional": true,
           "requires": {
             "ethers": "4.0.0-beta.3",
             "underscore": "1.9.1",
-            "web3-utils": "1.2.1"
+            "web3-utils": "1.2.4"
           },
           "dependencies": {
             "aes-js": {
@@ -33735,23 +33721,24 @@
           }
         },
         "web3-eth-accounts": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz",
-          "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.4.tgz",
+          "integrity": "sha512-04LzT/UtWmRFmi4hHRewP5Zz43fWhuHiK5XimP86sUQodk/ByOkXQ3RoXyGXFMNoRxdcAeRNxSfA2DpIBc9xUw==",
           "dev": true,
           "optional": true,
           "requires": {
+            "@web3-js/scrypt-shim": "^0.1.0",
             "any-promise": "1.3.0",
             "crypto-browserify": "3.12.0",
             "eth-lib": "0.2.7",
-            "scryptsy": "2.1.0",
-            "semver": "6.2.0",
+            "ethereumjs-common": "^1.3.2",
+            "ethereumjs-tx": "^2.1.1",
             "underscore": "1.9.1",
             "uuid": "3.3.2",
-            "web3-core": "1.2.1",
-            "web3-core-helpers": "1.2.1",
-            "web3-core-method": "1.2.1",
-            "web3-utils": "1.2.1"
+            "web3-core": "1.2.4",
+            "web3-core-helpers": "1.2.4",
+            "web3-core-method": "1.2.4",
+            "web3-utils": "1.2.4"
           },
           "dependencies": {
             "eth-lib": {
@@ -33765,92 +33752,89 @@
                 "elliptic": "^6.4.0",
                 "xhr-request-promise": "^0.1.2"
               }
-            },
-            "scryptsy": {
-              "version": "2.1.0",
-              "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz",
-              "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==",
-              "dev": true,
-              "optional": true
-            },
-            "semver": {
-              "version": "6.2.0",
-              "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
-              "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
-              "dev": true,
-              "optional": true
             }
           }
         },
         "web3-eth-contract": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz",
-          "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.4.tgz",
+          "integrity": "sha512-b/9zC0qjVetEYnzRA1oZ8gF1OSSUkwSYi5LGr4GeckLkzXP7osEnp9lkO/AQcE4GpG+l+STnKPnASXJGZPgBRQ==",
           "dev": true,
           "optional": true,
           "requires": {
+            "@types/bn.js": "^4.11.4",
             "underscore": "1.9.1",
-            "web3-core": "1.2.1",
-            "web3-core-helpers": "1.2.1",
-            "web3-core-method": "1.2.1",
-            "web3-core-promievent": "1.2.1",
-            "web3-core-subscriptions": "1.2.1",
-            "web3-eth-abi": "1.2.1",
-            "web3-utils": "1.2.1"
+            "web3-core": "1.2.4",
+            "web3-core-helpers": "1.2.4",
+            "web3-core-method": "1.2.4",
+            "web3-core-promievent": "1.2.4",
+            "web3-core-subscriptions": "1.2.4",
+            "web3-eth-abi": "1.2.4",
+            "web3-utils": "1.2.4"
           }
         },
         "web3-eth-ens": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz",
-          "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.4.tgz",
+          "integrity": "sha512-g8+JxnZlhdsCzCS38Zm6R/ngXhXzvc3h7bXlxgKU4coTzLLoMpgOAEz71GxyIJinWTFbLXk/WjNY0dazi9NwVw==",
           "dev": true,
           "optional": true,
           "requires": {
             "eth-ens-namehash": "2.0.8",
             "underscore": "1.9.1",
-            "web3-core": "1.2.1",
-            "web3-core-helpers": "1.2.1",
-            "web3-core-promievent": "1.2.1",
-            "web3-eth-abi": "1.2.1",
-            "web3-eth-contract": "1.2.1",
-            "web3-utils": "1.2.1"
+            "web3-core": "1.2.4",
+            "web3-core-helpers": "1.2.4",
+            "web3-core-promievent": "1.2.4",
+            "web3-eth-abi": "1.2.4",
+            "web3-eth-contract": "1.2.4",
+            "web3-utils": "1.2.4"
           }
         },
         "web3-eth-iban": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz",
-          "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.4.tgz",
+          "integrity": "sha512-D9HIyctru/FLRpXakRwmwdjb5bWU2O6UE/3AXvRm6DCOf2e+7Ve11qQrPtaubHfpdW3KWjDKvlxV9iaFv/oTMQ==",
           "dev": true,
           "optional": true,
           "requires": {
             "bn.js": "4.11.8",
-            "web3-utils": "1.2.1"
+            "web3-utils": "1.2.4"
           }
         },
         "web3-eth-personal": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz",
-          "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.4.tgz",
+          "integrity": "sha512-5Russ7ZECwHaZXcN3DLuLS7390Vzgrzepl4D87SD6Sn1DHsCZtvfdPIYwoTmKNp69LG3mORl7U23Ga5YxqkICw==",
           "dev": true,
           "optional": true,
           "requires": {
-            "web3-core": "1.2.1",
-            "web3-core-helpers": "1.2.1",
-            "web3-core-method": "1.2.1",
-            "web3-net": "1.2.1",
-            "web3-utils": "1.2.1"
+            "@types/node": "^12.6.1",
+            "web3-core": "1.2.4",
+            "web3-core-helpers": "1.2.4",
+            "web3-core-method": "1.2.4",
+            "web3-net": "1.2.4",
+            "web3-utils": "1.2.4"
+          },
+          "dependencies": {
+            "@types/node": {
+              "version": "12.12.14",
+              "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz",
+              "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==",
+              "dev": true,
+              "optional": true
+            }
           }
         },
         "web3-net": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz",
-          "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.4.tgz",
+          "integrity": "sha512-wKOsqhyXWPSYTGbp7ofVvni17yfRptpqoUdp3SC8RAhDmGkX6irsiT9pON79m6b3HUHfLoBilFQyt/fTUZOf7A==",
           "dev": true,
           "optional": true,
           "requires": {
-            "web3-core": "1.2.1",
-            "web3-core-method": "1.2.1",
-            "web3-utils": "1.2.1"
+            "web3-core": "1.2.4",
+            "web3-core-method": "1.2.4",
+            "web3-utils": "1.2.4"
           }
         },
         "web3-provider-engine": {
@@ -33887,8 +33871,44 @@
               "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=",
               "dev": true,
               "requires": {
-                "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
                 "ethereumjs-util": "^5.1.1"
+              },
+              "dependencies": {
+                "ethereumjs-abi": {
+                  "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b",
+                  "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b",
+                  "requires": {
+                    "bn.js": "^4.11.8",
+                    "ethereumjs-util": "^6.0.0"
+                  },
+                  "dependencies": {
+                    "ethereumjs-util": {
+                      "version": "6.2.0",
+                      "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz",
+                      "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==",
+                      "requires": {
+                        "@types/bn.js": "^4.11.3",
+                        "bn.js": "^4.11.0",
+                        "create-hash": "^1.1.2",
+                        "ethjs-util": "0.1.6",
+                        "keccak": "^2.0.0",
+                        "rlp": "^2.2.3",
+                        "secp256k1": "^3.0.1"
+                      }
+                    }
+                  }
+                },
+                "keccak": {
+                  "version": "2.1.0",
+                  "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz",
+                  "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==",
+                  "requires": {
+                    "bindings": "^1.5.0",
+                    "inherits": "^2.0.4",
+                    "nan": "^2.14.0",
+                    "safe-buffer": "^5.2.0"
+                  }
+                }
               }
             },
             "ethereum-common": {
@@ -33900,7 +33920,6 @@
             "ethereumjs-abi": {
               "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b",
               "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
-              "dev": true,
               "requires": {
                 "bn.js": "^4.11.8",
                 "ethereumjs-util": "^6.0.0"
@@ -33910,7 +33929,6 @@
                   "version": "6.1.0",
                   "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz",
                   "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==",
-                  "dev": true,
                   "requires": {
                     "bn.js": "^4.11.0",
                     "create-hash": "^1.1.2",
@@ -33947,6 +33965,24 @@
                 "merkle-patricia-tree": "^2.1.2"
               }
             },
+            "ethereumjs-tx": {
+              "version": "1.3.7",
+              "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+              "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+              "dev": true,
+              "requires": {
+                "ethereum-common": "^0.0.18",
+                "ethereumjs-util": "^5.0.0"
+              },
+              "dependencies": {
+                "ethereum-common": {
+                  "version": "0.0.18",
+                  "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz",
+                  "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=",
+                  "dev": true
+                }
+              }
+            },
             "ethereumjs-util": {
               "version": "5.2.0",
               "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz",
@@ -34028,6 +34064,11 @@
                 }
               }
             },
+            "nan": {
+              "version": "2.14.0",
+              "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+              "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
+            },
             "ws": {
               "version": "5.2.2",
               "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
@@ -34040,104 +34081,66 @@
           }
         },
         "web3-providers-http": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz",
-          "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.4.tgz",
+          "integrity": "sha512-dzVCkRrR/cqlIrcrWNiPt9gyt0AZTE0J+MfAu9rR6CyIgtnm1wFUVVGaxYRxuTGQRO4Dlo49gtoGwaGcyxqiTw==",
           "dev": true,
           "optional": true,
           "requires": {
-            "web3-core-helpers": "1.2.1",
+            "web3-core-helpers": "1.2.4",
             "xhr2-cookies": "1.1.0"
           }
         },
         "web3-providers-ipc": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz",
-          "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.4.tgz",
+          "integrity": "sha512-8J3Dguffin51gckTaNrO3oMBo7g+j0UNk6hXmdmQMMNEtrYqw4ctT6t06YOf9GgtOMjSAc1YEh3LPrvgIsR7og==",
           "dev": true,
           "optional": true,
           "requires": {
             "oboe": "2.1.4",
             "underscore": "1.9.1",
-            "web3-core-helpers": "1.2.1"
+            "web3-core-helpers": "1.2.4"
           }
         },
         "web3-providers-ws": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz",
-          "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.4.tgz",
+          "integrity": "sha512-F/vQpDzeK+++oeeNROl1IVTufFCwCR2hpWe5yRXN0ApLwHqXrMI7UwQNdJ9iyibcWjJf/ECbauEEQ8CHgE+MYQ==",
           "dev": true,
           "optional": true,
           "requires": {
+            "@web3-js/websocket": "^1.0.29",
             "underscore": "1.9.1",
-            "web3-core-helpers": "1.2.1",
-            "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis"
-          },
-          "dependencies": {
-            "debug": {
-              "version": "2.6.9",
-              "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-              "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ms": "2.0.0"
-              }
-            },
-            "ms": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-              "dev": true,
-              "optional": true
-            },
-            "nan": {
-              "version": "2.14.0",
-              "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
-              "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
-              "dev": true,
-              "optional": true
-            },
-            "websocket": {
-              "version": "github:web3-js/WebSocket-Node#b134a75541b5db59668df81c03e926cd5f325077",
-              "from": "github:web3-js/WebSocket-Node#polyfill/globalThis",
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "debug": "^2.2.0",
-                "es5-ext": "^0.10.50",
-                "nan": "^2.14.0",
-                "typedarray-to-buffer": "^3.1.5",
-                "yaeti": "^0.0.6"
-              }
-            }
+            "web3-core-helpers": "1.2.4"
           }
         },
         "web3-shh": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz",
-          "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.4.tgz",
+          "integrity": "sha512-z+9SCw0dE+69Z/Hv8809XDbLj7lTfEv9Sgu8eKEIdGntZf4v7ewj5rzN5bZZSz8aCvfK7Y6ovz1PBAu4QzS4IQ==",
           "dev": true,
           "optional": true,
           "requires": {
-            "web3-core": "1.2.1",
-            "web3-core-method": "1.2.1",
-            "web3-core-subscriptions": "1.2.1",
-            "web3-net": "1.2.1"
+            "web3-core": "1.2.4",
+            "web3-core-method": "1.2.4",
+            "web3-core-subscriptions": "1.2.4",
+            "web3-net": "1.2.4"
           }
         },
         "web3-utils": {
-          "version": "1.2.1",
-          "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz",
-          "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==",
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.4.tgz",
+          "integrity": "sha512-+S86Ip+jqfIPQWvw2N/xBQq5JNqCO0dyvukGdJm8fEWHZbckT4WxSpHbx+9KLEWY4H4x9pUwnoRkK87pYyHfgQ==",
           "dev": true,
           "optional": true,
           "requires": {
             "bn.js": "4.11.8",
             "eth-lib": "0.2.7",
+            "ethereum-bloom-filters": "^1.0.6",
             "ethjs-unit": "0.1.6",
             "number-to-bn": "1.7.0",
-            "randomhex": "0.1.5",
+            "randombytes": "^2.1.0",
             "underscore": "1.9.1",
             "utf8": "3.0.0"
           },
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 975ea3533..140789d72 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -117,7 +117,7 @@
     "eslint-plugin-promise": "^4.0.1",
     "eslint-plugin-standard": "^4.0.0",
     "ganache-cli": "^6.7.0",
-    "ganache-core": "^2.8.0",
+    "ganache-core": "^2.9.0",
     "nyc": "^14.1.1",
     "prettier": "^1.15.3",
     "proxyquire": "^2.1.0",
diff --git a/packages/cli/src/commands/devchain_cmds/start.js b/packages/cli/src/commands/devchain_cmds/start.js
index 2cf067293..a70d3ed3c 100644
--- a/packages/cli/src/commands/devchain_cmds/start.js
+++ b/packages/cli/src/commands/devchain_cmds/start.js
@@ -14,7 +14,7 @@ import ganache from 'ganache-core'
 import listrOpts from '../../helpers/listr-options'
 import pjson from '../../../package.json'
 import { task as devchainStatusTask } from './status'
-import { BLOCK_GAS_LIMIT, MNEMONIC } from './utils/ganache-vars'
+import { BLOCK_GAS_LIMIT, MNEMONIC } from './utils/constants'
 
 export const command = 'start'
 export const describe =
@@ -31,6 +31,10 @@ export const builder = yargs => {
       description: 'Network id to connect with',
       alias: 'i',
     })
+    .option('hardfork', {
+      description:
+        'Allows to specify which hardfork should be used. Supported hardforks are byzantium, constantinople, petersburg, and istanbul (default).',
+    })
     .option('block-time', {
       description: 'Specify blockTime in seconds for automatic mining',
       alias: 'b',
@@ -61,6 +65,7 @@ export const builder = yargs => {
 export const task = async function({
   port = 8545,
   networkId,
+  hardfork = 'istanbul',
   blockTime,
   gasLimit = BLOCK_GAS_LIMIT,
   verbose = false,
@@ -119,6 +124,7 @@ export const task = async function({
 
           const options = {
             network_id: ctx.id,
+            hardfork,
             blockTime,
             gasLimit,
             mnemonic: MNEMONIC,
diff --git a/packages/cli/src/commands/devchain_cmds/utils/ganache-vars.js b/packages/cli/src/commands/devchain_cmds/utils/ganache-vars.js
deleted file mode 100644
index 708f86a74..000000000
--- a/packages/cli/src/commands/devchain_cmds/utils/ganache-vars.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export const BLOCK_GAS_LIMIT = 50e6
-export const MNEMONIC =
-  'explain tackle mirror kit van hammer degree position ginger unfair soup bonus'
diff --git a/packages/cli/src/commands/run.js b/packages/cli/src/commands/run.js
index 1be9c0c33..27b468c99 100644
--- a/packages/cli/src/commands/run.js
+++ b/packages/cli/src/commands/run.js
@@ -73,6 +73,10 @@ export const builder = function(yargs) {
     .option('network-id', {
       description: 'Network id to connect with',
     })
+    .option('hardfork', {
+      description:
+        'Allows to specify which hardfork should be used. Supported hardforks are byzantium, constantinople, petersburg, and istanbul (default).',
+    })
     .option('block-time', {
       description: 'Specify blockTime in seconds for automatic mining',
     })
@@ -196,6 +200,7 @@ export const handler = async function({
   files,
   port,
   networkId,
+  hardfork,
   blockTime,
   accounts,
   reset,
@@ -251,7 +256,14 @@ export const handler = async function({
           }
         },
         task: async (ctx, task) =>
-          devchainTask({ port, networkId, blockTime, reset, showAccounts }),
+          devchainTask({
+            port,
+            networkId,
+            hardfork,
+            blockTime,
+            reset,
+            showAccounts,
+          }),
       },
       {
         title: 'Setup before publish',
diff --git a/packages/toolkit/test/token/snapshots/token.test.js.md b/packages/toolkit/test/token/snapshots/token.test.js.md
index b59cd1cba..596dd02ce 100644
--- a/packages/toolkit/test/token/snapshots/token.test.js.md
+++ b/packages/toolkit/test/token/snapshots/token.test.js.md
@@ -16,4 +16,4 @@ Generated by [AVA](https://ava.li).
 
 > the transaction gas is correct
 
-    3546390
+    2916618
diff --git a/packages/toolkit/test/token/snapshots/token.test.js.snap b/packages/toolkit/test/token/snapshots/token.test.js.snap
index e559b866d..c153c09d7 100644
Binary files a/packages/toolkit/test/token/snapshots/token.test.js.snap and b/packages/toolkit/test/token/snapshots/token.test.js.snap differ