on master help sign in
Merge pull request #135 from urbit/mino-transactions
4eb5f1eFang
package-lock.json+834−470
@@ -1346,6 +1346,11 @@
1346 "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz",
1346 "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz",
1347 "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg=="
1347 "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg=="
1348 },
1348 },
1349+ "aes-js": {
1350+ "version": "3.0.0",
1351+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
1352+ "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0="
1353+ },
1349 "ajv": {
1354 "ajv": {
1350 "version": "6.6.2",
1355 "version": "6.6.2",
1351 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
1356 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
@@ -1439,11 +1444,6 @@
1439 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1444 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1440 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
1445 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
1441 },
1446 },
1442− "any-promise": {
1443− "version": "1.3.0",
1444− "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
1445− "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
1446− },
1447 "anymatch": {
1447 "anymatch": {
1448 "version": "2.0.0",
1448 "version": "2.0.0",
1449 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
1449 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
@@ -2617,14 +2617,6 @@
2617 "safe-buffer": "^5.1.1"
2617 "safe-buffer": "^5.1.1"
2618 }
2618 }
2619 },
2619 },
2620− "block-stream": {
2621− "version": "0.0.9",
2622− "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
2623− "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
2624− "requires": {
2625− "inherits": "~2.0.0"
2626− }
2627− },
2628 "bluebird": {
2620 "bluebird": {
2629 "version": "3.5.3",
2621 "version": "3.5.3",
2630 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
2622 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
@@ -3639,6 +3631,11 @@
3639 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
3631 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
3640 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
3632 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
3641 },
3633 },
3634+ "cookiejar": {
3635+ "version": "2.1.2",
3636+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
3637+ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA=="
3638+ },
3642 "copy-concurrently": {
3639 "copy-concurrently": {
3643 "version": "1.0.5",
3640 "version": "1.0.5",
3644 "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
3641 "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
@@ -5180,6 +5177,22 @@
5180 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
5177 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
5181 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
5178 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
5182 },
5179 },
5180+ "eth-ens-namehash": {
5181+ "version": "2.0.8",
5182+ "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
5183+ "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=",
5184+ "requires": {
5185+ "idna-uts46-hx": "^2.3.1",
5186+ "js-sha3": "^0.5.7"
5187+ },
5188+ "dependencies": {
5189+ "js-sha3": {
5190+ "version": "0.5.7",
5191+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
5192+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
5193+ }
5194+ }
5195+ },
5183 "eth-lib": {
5196 "eth-lib": {
5184 "version": "0.1.27",
5197 "version": "0.1.27",
5185 "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz",
5198 "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz",
@@ -5230,6 +5243,60 @@
5230 "secp256k1": "^3.0.1"
5243 "secp256k1": "^3.0.1"
5231 }
5244 }
5232 },
5245 },
5246+ "ethers": {
5247+ "version": "4.0.27",
5248+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.27.tgz",
5249+ "integrity": "sha512-+DXZLP/tyFnXWxqr2fXLT67KlGUfLuvDkHSOtSC9TUVG9OIj6yrG5JPeXRMYo15xkOYwnjgdMKrXp5V94rtjJA==",
5250+ "requires": {
5251+ "@types/node": "^10.3.2",
5252+ "aes-js": "3.0.0",
5253+ "bn.js": "^4.4.0",
5254+ "elliptic": "6.3.3",
5255+ "hash.js": "1.1.3",
5256+ "js-sha3": "0.5.7",
5257+ "scrypt-js": "2.0.4",
5258+ "setimmediate": "1.0.4",
5259+ "uuid": "2.0.1",
5260+ "xmlhttprequest": "1.8.0"
5261+ },
5262+ "dependencies": {
5263+ "elliptic": {
5264+ "version": "6.3.3",
5265+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
5266+ "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=",
5267+ "requires": {
5268+ "bn.js": "^4.4.0",
5269+ "brorand": "^1.0.1",
5270+ "hash.js": "^1.0.0",
5271+ "inherits": "^2.0.1"
5272+ }
5273+ },
5274+ "hash.js": {
5275+ "version": "1.1.3",
5276+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
5277+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
5278+ "requires": {
5279+ "inherits": "^2.0.3",
5280+ "minimalistic-assert": "^1.0.0"
5281+ }
5282+ },
5283+ "js-sha3": {
5284+ "version": "0.5.7",
5285+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
5286+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
5287+ },
5288+ "setimmediate": {
5289+ "version": "1.0.4",
5290+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
5291+ "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48="
5292+ },
5293+ "uuid": {
5294+ "version": "2.0.1",
5295+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
5296+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w="
5297+ }
5298+ }
5299+ },
5233 "ethjs-unit": {
5300 "ethjs-unit": {
5234 "version": "0.1.6",
5301 "version": "0.1.6",
5235 "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
5302 "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
@@ -5256,9 +5323,9 @@
5256 }
5323 }
5257 },
5324 },
5258 "eventemitter3": {
5325 "eventemitter3": {
5259− "version": "1.1.1",
5326+ "version": "3.1.0",
5260− "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz",
5327+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
5261− "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA="
5328+ "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA=="
5262 },
5329 },
5263 "events": {
5330 "events": {
5264 "version": "3.0.0",
5331 "version": "3.0.0",
@@ -6376,26 +6443,12 @@
6376 "rimraf": "^2.2.8"
6443 "rimraf": "^2.2.8"
6377 }
6444 }
6378 },
6445 },
6379− "fs-promise": {
6446+ "fs-minipass": {
6380− "version": "2.0.3",
6447+ "version": "1.2.5",
6381− "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz",
6448+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
6382− "integrity": "sha1-9k5PhUvPaJqovdy6JokW2z20aFQ=",
6449+ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
6383 "requires": {
6450 "requires": {
6384− "any-promise": "^1.3.0",
6451+ "minipass": "^2.2.1"
6385− "fs-extra": "^2.0.0",
6386− "mz": "^2.6.0",
6387− "thenify-all": "^1.6.0"
6388− },
6389− "dependencies": {
6390− "fs-extra": {
6391− "version": "2.1.2",
6392− "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz",
6393− "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=",
6394− "requires": {
6395− "graceful-fs": "^4.1.2",
6396− "jsonfile": "^2.1.0"
6397− }
6398− }
6399 }
6452 }
6400 },
6453 },
6401 "fs-write-stream-atomic": {
6454 "fs-write-stream-atomic": {
@@ -6895,17 +6948,6 @@
6895 }
6948 }
6896 }
6949 }
6897 },
6950 },
6898− "fstream": {
6899− "version": "1.0.11",
6900− "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
6901− "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
6902− "requires": {
6903− "graceful-fs": "^4.1.2",
6904− "inherits": "~2.0.0",
6905− "mkdirp": ">=0.5 0",
6906− "rimraf": "2"
6907− }
6908− },
6909 "function-bind": {
6951 "function-bind": {
6910 "version": "1.1.1",
6952 "version": "1.1.1",
6911 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
6953 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -7887,11 +7929,6 @@
7887 "statuses": ">= 1.4.0 < 2"
7929 "statuses": ">= 1.4.0 < 2"
7888 }
7930 }
7889 },
7931 },
7890− "http-https": {
7891− "version": "1.0.0",
7892− "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
7893− "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs="
7894− },
7895 "http-parser-js": {
7932 "http-parser-js": {
7896 "version": "0.5.0",
7933 "version": "0.5.0",
7897 "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
7934 "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
@@ -8232,6 +8269,21 @@
8232 "harmony-reflect": "^1.4.6"
8269 "harmony-reflect": "^1.4.6"
8233 }
8270 }
8234 },
8271 },
8272+ "idna-uts46-hx": {
8273+ "version": "2.3.1",
8274+ "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz",
8275+ "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==",
8276+ "requires": {
8277+ "punycode": "2.1.0"
8278+ },
8279+ "dependencies": {
8280+ "punycode": {
8281+ "version": "2.1.0",
8282+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
8283+ "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0="
8284+ }
8285+ }
8286+ },
8235 "ieee754": {
8287 "ieee754": {
8236 "version": "1.1.12",
8288 "version": "1.1.12",
8237 "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
8289 "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
@@ -10697,6 +10749,30 @@
10697 "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
10749 "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
10698 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
10750 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
10699 },
10751 },
10752+ "minipass": {
10753+ "version": "2.3.5",
10754+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
10755+ "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
10756+ "requires": {
10757+ "safe-buffer": "^5.1.2",
10758+ "yallist": "^3.0.0"
10759+ },
10760+ "dependencies": {
10761+ "yallist": {
10762+ "version": "3.0.3",
10763+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
10764+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
10765+ }
10766+ }
10767+ },
10768+ "minizlib": {
10769+ "version": "1.2.1",
10770+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
10771+ "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
10772+ "requires": {
10773+ "minipass": "^2.2.1"
10774+ }
10775+ },
10700 "mississippi": {
10776 "mississippi": {
10701 "version": "3.0.0",
10777 "version": "3.0.0",
10702 "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
10778 "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
@@ -10817,9 +10893,9 @@
10817 }
10893 }
10818 },
10894 },
10819 "mock-fs": {
10895 "mock-fs": {
10820− "version": "4.8.0",
10896+ "version": "4.9.0",
10821− "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.8.0.tgz",
10897+ "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.9.0.tgz",
10822− "integrity": "sha512-Gwj4KnJOW15YeTJKO5frFd/WDO5Mc0zxXqL9oHx3+e9rBqW8EVARqQHSaIXznUdljrD6pvbNGW2ZGXKPEfYJfw=="
10898+ "integrity": "sha512-aUj0qIniTNxzGqAC61Bvro7YD37tIBnMw3wpClucUVgNBS7r6YQn/M4wuoH7SGteKz4SvC1OBeDsfpG0MYC+1Q=="
10823 },
10899 },
10824 "more-entropy": {
10900 "more-entropy": {
10825 "version": "0.0.7",
10901 "version": "0.0.7",
@@ -10829,11 +10905,6 @@
10829 "iced-runtime": ">=0.0.1"
10905 "iced-runtime": ">=0.0.1"
10830 }
10906 }
10831 },
10907 },
10832− "mout": {
10833− "version": "0.11.1",
10834− "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz",
10835− "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k="
10836− },
10837 "move-concurrently": {
10908 "move-concurrently": {
10838 "version": "1.0.1",
10909 "version": "1.0.1",
10839 "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
10910 "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
@@ -10876,16 +10947,6 @@
10876 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
10947 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
10877 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
10948 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
10878 },
10949 },
10879− "mz": {
10880− "version": "2.7.0",
10881− "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
10882− "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
10883− "requires": {
10884− "any-promise": "^1.0.0",
10885− "object-assign": "^4.0.1",
10886− "thenify-all": "^1.0.0"
10887− }
10888− },
10889 "nan": {
10950 "nan": {
10890 "version": "2.12.1",
10951 "version": "2.12.1",
10891 "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
10952 "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
@@ -11353,14 +11414,6 @@
11353 "has": "^1.0.1"
11414 "has": "^1.0.1"
11354 }
11415 }
11355 },
11416 },
11356− "oboe": {
11357− "version": "2.1.3",
11358− "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz",
11359− "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=",
11360− "requires": {
11361− "http-https": "^1.0.0"
11362− }
11363− },
11364 "obuf": {
11417 "obuf": {
11365 "version": "1.1.2",
11418 "version": "1.1.2",
11366 "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
11419 "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
@@ -17219,6 +17272,11 @@
17219 "nan": "^2.0.8"
17272 "nan": "^2.0.8"
17220 }
17273 }
17221 },
17274 },
17275+ "scrypt-js": {
17276+ "version": "2.0.4",
17277+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz",
17278+ "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw=="
17279+ },
17222 "scrypt.js": {
17280 "scrypt.js": {
17223 "version": "0.2.0",
17281 "version": "0.2.0",
17224 "resolved": "http://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz",
17282 "resolved": "http://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz",
@@ -18247,32 +18305,40 @@
18247 }
18305 }
18248 },
18306 },
18249 "swarm-js": {
18307 "swarm-js": {
18250− "version": "0.1.37",
18308+ "version": "0.1.39",
18251− "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.37.tgz",
18309+ "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz",
18252− "integrity": "sha512-G8gi5fcXP/2upwiuOShJ258sIufBVztekgobr3cVgYXObZwJ5AXLqZn52AI+/ffft29pJexF9WNdUxjlkVehoQ==",
18310+ "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==",
18253 "requires": {
18311 "requires": {
18254 "bluebird": "^3.5.0",
18312 "bluebird": "^3.5.0",
18255 "buffer": "^5.0.5",
18313 "buffer": "^5.0.5",
18256 "decompress": "^4.0.0",
18314 "decompress": "^4.0.0",
18257 "eth-lib": "^0.1.26",
18315 "eth-lib": "^0.1.26",
18258− "fs-extra": "^2.1.2",
18316+ "fs-extra": "^4.0.2",
18259− "fs-promise": "^2.0.0",
18260 "got": "^7.1.0",
18317 "got": "^7.1.0",
18261 "mime-types": "^2.1.16",
18318 "mime-types": "^2.1.16",
18262 "mkdirp-promise": "^5.0.1",
18319 "mkdirp-promise": "^5.0.1",
18263 "mock-fs": "^4.1.0",
18320 "mock-fs": "^4.1.0",
18264 "setimmediate": "^1.0.5",
18321 "setimmediate": "^1.0.5",
18265− "tar.gz": "^1.0.5",
18322+ "tar": "^4.0.2",
18266 "xhr-request-promise": "^0.1.2"
18323 "xhr-request-promise": "^0.1.2"
18267 },
18324 },
18268 "dependencies": {
18325 "dependencies": {
18269 "fs-extra": {
18326 "fs-extra": {
18270− "version": "2.1.2",
18327+ "version": "4.0.3",
18271− "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz",
18328+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
18272− "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=",
18329+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
18273 "requires": {
18330 "requires": {
18274 "graceful-fs": "^4.1.2",
18331 "graceful-fs": "^4.1.2",
18275− "jsonfile": "^2.1.0"
18332+ "jsonfile": "^4.0.0",
18333+ "universalify": "^0.1.0"
18334+ }
18335+ },
18336+ "jsonfile": {
18337+ "version": "4.0.0",
18338+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
18339+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
18340+ "requires": {
18341+ "graceful-fs": "^4.1.6"
18276 }
18342 }
18277 }
18343 }
18278 }
18344 }
@@ -18361,13 +18427,24 @@
18361 "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA=="
18427 "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA=="
18362 },
18428 },
18363 "tar": {
18429 "tar": {
18364− "version": "2.2.1",
18430+ "version": "4.4.8",
18365− "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
18431+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
18366− "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
18432+ "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
18367 "requires": {
18433 "requires": {
18368− "block-stream": "*",
18434+ "chownr": "^1.1.1",
18369− "fstream": "^1.0.2",
18435+ "fs-minipass": "^1.2.5",
18370− "inherits": "2"
18436+ "minipass": "^2.3.4",
18437+ "minizlib": "^1.1.1",
18438+ "mkdirp": "^0.5.0",
18439+ "safe-buffer": "^5.1.2",
18440+ "yallist": "^3.0.2"
18441+ },
18442+ "dependencies": {
18443+ "yallist": {
18444+ "version": "3.0.3",
18445+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
18446+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
18447+ }
18371 }
18448 }
18372 },
18449 },
18373 "tar-stream": {
18450 "tar-stream": {
@@ -18384,25 +18461,6 @@
18384 "xtend": "^4.0.0"
18461 "xtend": "^4.0.0"
18385 }
18462 }
18386 },
18463 },
18387− "tar.gz": {
18388− "version": "1.0.7",
18389− "resolved": "https://registry.npmjs.org/tar.gz/-/tar.gz-1.0.7.tgz",
18390− "integrity": "sha512-uhGatJvds/3diZrETqMj4RxBR779LKlIE74SsMcn5JProZsfs9j0QBwWO1RW+IWNJxS2x8Zzra1+AW6OQHWphg==",
18391− "requires": {
18392− "bluebird": "^2.9.34",
18393− "commander": "^2.8.1",
18394− "fstream": "^1.0.8",
18395− "mout": "^0.11.0",
18396− "tar": "^2.1.1"
18397− },
18398− "dependencies": {
18399− "bluebird": {
18400− "version": "2.11.0",
18401− "resolved": "http://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
18402− "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE="
18403− }
18404− }
18405− },
18406 "term-size": {
18464 "term-size": {
18407 "version": "1.2.0",
18465 "version": "1.2.0",
18408 "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
18466 "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
@@ -18548,22 +18606,6 @@
18548 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
18606 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
18549 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
18607 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
18550 },
18608 },
18551− "thenify": {
18552− "version": "3.3.0",
18553− "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz",
18554− "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=",
18555− "requires": {
18556− "any-promise": "^1.0.0"
18557− }
18558− },
18559− "thenify-all": {
18560− "version": "1.6.0",
18561− "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
18562− "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
18563− "requires": {
18564− "thenify": ">= 3.1.0 < 4"
18565− }
18566− },
18567 "throat": {
18609 "throat": {
18568 "version": "4.1.0",
18610 "version": "4.1.0",
18569 "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz",
18611 "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz",
@@ -18965,11 +19007,6 @@
18965 "through": "^2.3.8"
19007 "through": "^2.3.8"
18966 }
19008 }
18967 },
19009 },
18968− "underscore": {
18969− "version": "1.8.3",
18970− "resolved": "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
18971− "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
18972− },
18973 "unicode-canonical-property-names-ecmascript": {
19010 "unicode-canonical-property-names-ecmascript": {
18974 "version": "1.0.4",
19011 "version": "1.0.4",
18975 "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
19012 "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
@@ -19383,486 +19420,804 @@
19383 }
19420 }
19384 },
19421 },
19385 "web3": {
19422 "web3": {
19386− "version": "1.0.0-beta.33",
19423+ "version": "1.0.0-beta.54",
19387− "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.33.tgz",
19424+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.54.tgz",
19388− "integrity": "sha1-xgIbV2mSdyY3HBhLhoRFMRsTkpU=",
19425+ "integrity": "sha512-rMQaLFwBNR3Lc8Npa9uasdkJKhsnp2FrDA0r8J814mU1VITkAG7l8NPICrlUaDLNiQn0bf6QnONTNujuds+yNg==",
19389− "requires": {
19426+ "requires": {
19427+ "@babel/runtime": "^7.3.1",
19428+ "@types/node": "^10.12.18",
19390− "web3-bzz": "1.0.0-beta.33",
19429+ "web3-bzz": "1.0.0-beta.54",
19430+ "web3-core": "1.0.0-beta.54",
19431+ "web3-core-helpers": "1.0.0-beta.54",
19391− "web3-core": "1.0.0-beta.33",
19432+ "web3-core-method": "1.0.0-beta.54",
19392− "web3-eth": "1.0.0-beta.33",
19433+ "web3-eth": "1.0.0-beta.54",
19393− "web3-eth-personal": "1.0.0-beta.33",
19434+ "web3-eth-personal": "1.0.0-beta.54",
19394− "web3-net": "1.0.0-beta.33",
19435+ "web3-net": "1.0.0-beta.54",
19436+ "web3-providers": "1.0.0-beta.54",
19395− "web3-shh": "1.0.0-beta.33",
19437+ "web3-shh": "1.0.0-beta.54",
19396− "web3-utils": "1.0.0-beta.33"
19438+ "web3-utils": "1.0.0-beta.54"
19397 },
19439 },
19398 "dependencies": {
19440 "dependencies": {
19399− "bn.js": {
19441+ "@babel/runtime": {
19400− "version": "4.11.6",
19442+ "version": "7.4.4",
19401− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
19443+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19402− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
19444+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19445+ "requires": {
19446+ "regenerator-runtime": "^0.13.2"
19447+ }
19403 },
19448 },
19404− "web3-utils": {
19449+ "eth-lib": {
19405− "version": "1.0.0-beta.33",
19450+ "version": "0.2.8",
19406− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
19451+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19407− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
19452+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19408 "requires": {
19453 "requires": {
19409− "bn.js": "4.11.6",
19454+ "bn.js": "^4.11.6",
19455+ "elliptic": "^6.4.0",
19456+ "xhr-request-promise": "^0.1.2"
19457+ }
19458+ },
19459+ "regenerator-runtime": {
19460+ "version": "0.13.2",
19461+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19462+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19463+ },
19464+ "web3-utils": {
19465+ "version": "1.0.0-beta.54",
19466+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
19467+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
19468+ "requires": {
19469+ "@babel/runtime": "^7.3.1",
19470+ "@types/bn.js": "^4.11.4",
19471+ "@types/node": "^10.12.18",
19472+ "bn.js": "4.11.8",
19410− "eth-lib": "0.1.27",
19473+ "eth-lib": "0.2.8",
19411− "ethjs-unit": "0.1.6",
19474+ "ethjs-unit": "^0.1.6",
19475+ "lodash": "^4.17.11",
19412 "number-to-bn": "1.7.0",
19476 "number-to-bn": "1.7.0",
19413 "randomhex": "0.1.5",
19477 "randomhex": "0.1.5",
19414− "underscore": "1.8.3",
19415 "utf8": "2.1.1"
19478 "utf8": "2.1.1"
19416 }
19479 }
19417 }
19480 }
19418 }
19481 }
19419 },
19482 },
19420 "web3-bzz": {
19483 "web3-bzz": {
19421− "version": "1.0.0-beta.33",
19484+ "version": "1.0.0-beta.54",
19422− "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.33.tgz",
19485+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.54.tgz",
19423− "integrity": "sha1-MVAPaZt+cO31FJDFXv+0J7+7OwE=",
19486+ "integrity": "sha512-YKoYJWSAxyekk52V0v/rx/gtklqFbMpT8S2Wevox+9MjWchizt34MovJOIbAQzUEUpDhMffdoycVoebmJBcVfA==",
19424 "requires": {
19487 "requires": {
19425− "got": "7.1.0",
19488+ "@babel/runtime": "^7.3.1",
19489+ "@types/node": "^10.12.18",
19490+ "lodash": "^4.17.11",
19426− "swarm-js": "0.1.37",
19491+ "swarm-js": "^0.1.39"
19427− "underscore": "1.8.3"
19492+ },
19493+ "dependencies": {
19494+ "@babel/runtime": {
19495+ "version": "7.4.4",
19496+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19497+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19498+ "requires": {
19499+ "regenerator-runtime": "^0.13.2"
19500+ }
19501+ },
19502+ "regenerator-runtime": {
19503+ "version": "0.13.2",
19504+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19505+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19506+ }
19428 }
19507 }
19429 },
19508 },
19430 "web3-core": {
19509 "web3-core": {
19431− "version": "1.0.0-beta.33",
19510+ "version": "1.0.0-beta.54",
19432− "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.33.tgz",
19511+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.54.tgz",
19433− "integrity": "sha1-+C7VJfW2auzale7O08rSvWlfeDk=",
19512+ "integrity": "sha512-phgFlv0LotX1ym1H+5mchhjJY3MVFov3DdUnFg1eZQlgHxsRKNfRI/nf3+ICVkDqOJP6mdX+oSPFizIXZJqLGQ==",
19434− "requires": {
19513+ "requires": {
19435− "web3-core-helpers": "1.0.0-beta.33",
19514+ "@babel/runtime": "^7.3.1",
19436− "web3-core-method": "1.0.0-beta.33",
19515+ "@types/bn.js": "^4.11.4",
19437− "web3-core-requestmanager": "1.0.0-beta.33",
19516+ "@types/node": "^10.12.18",
19517+ "lodash": "^4.17.11",
19438− "web3-utils": "1.0.0-beta.33"
19518+ "web3-utils": "1.0.0-beta.54"
19439 },
19519 },
19440 "dependencies": {
19520 "dependencies": {
19441− "bn.js": {
19521+ "@babel/runtime": {
19442− "version": "4.11.6",
19522+ "version": "7.4.4",
19443− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
19523+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19444− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
19524+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19525+ "requires": {
19526+ "regenerator-runtime": "^0.13.2"
19527+ }
19445 },
19528 },
19446− "web3-utils": {
19529+ "eth-lib": {
19447− "version": "1.0.0-beta.33",
19530+ "version": "0.2.8",
19448− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
19531+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19449− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
19532+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19450 "requires": {
19533 "requires": {
19451− "bn.js": "4.11.6",
19534+ "bn.js": "^4.11.6",
19535+ "elliptic": "^6.4.0",
19536+ "xhr-request-promise": "^0.1.2"
19537+ }
19538+ },
19539+ "regenerator-runtime": {
19540+ "version": "0.13.2",
19541+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19542+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19543+ },
19544+ "web3-utils": {
19545+ "version": "1.0.0-beta.54",
19546+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
19547+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
19548+ "requires": {
19549+ "@babel/runtime": "^7.3.1",
19550+ "@types/bn.js": "^4.11.4",
19551+ "@types/node": "^10.12.18",
19552+ "bn.js": "4.11.8",
19452− "eth-lib": "0.1.27",
19553+ "eth-lib": "0.2.8",
19453− "ethjs-unit": "0.1.6",
19554+ "ethjs-unit": "^0.1.6",
19555+ "lodash": "^4.17.11",
19454 "number-to-bn": "1.7.0",
19556 "number-to-bn": "1.7.0",
19455 "randomhex": "0.1.5",
19557 "randomhex": "0.1.5",
19456− "underscore": "1.8.3",
19457 "utf8": "2.1.1"
19558 "utf8": "2.1.1"
19458 }
19559 }
19459 }
19560 }
19460 }
19561 }
19461 },
19562 },
19462 "web3-core-helpers": {
19563 "web3-core-helpers": {
19463− "version": "1.0.0-beta.33",
19564+ "version": "1.0.0-beta.54",
19464− "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.33.tgz",
19565+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.54.tgz",
19465− "integrity": "sha1-Kvcz5QTbBefDZIwdrPV3sOwV3EM=",
19566+ "integrity": "sha512-tASbzdfWyUd6ICbrhDAkWP8NxzSk8+t8IGrpaTBen00gR4gudz3KLPZKTJXrE7y3FB6YONRFPlpYqbim/TS6XQ==",
19466 "requires": {
19567 "requires": {
19467− "underscore": "1.8.3",
19568+ "@babel/runtime": "^7.3.1",
19569+ "lodash": "^4.17.11",
19468− "web3-eth-iban": "1.0.0-beta.33",
19570+ "web3-eth-iban": "1.0.0-beta.54",
19469− "web3-utils": "1.0.0-beta.33"
19571+ "web3-utils": "1.0.0-beta.54"
19470 },
19572 },
19471 "dependencies": {
19573 "dependencies": {
19472− "bn.js": {
19574+ "@babel/runtime": {
19473− "version": "4.11.6",
19575+ "version": "7.4.4",
19474− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
19576+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19475− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
19577+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19578+ "requires": {
19579+ "regenerator-runtime": "^0.13.2"
19580+ }
19476 },
19581 },
19477− "web3-utils": {
19582+ "eth-lib": {
19478− "version": "1.0.0-beta.33",
19583+ "version": "0.2.8",
19479− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
19584+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19480− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
19585+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19481 "requires": {
19586 "requires": {
19482− "bn.js": "4.11.6",
19587+ "bn.js": "^4.11.6",
19588+ "elliptic": "^6.4.0",
19589+ "xhr-request-promise": "^0.1.2"
19590+ }
19591+ },
19592+ "regenerator-runtime": {
19593+ "version": "0.13.2",
19594+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19595+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19596+ },
19597+ "web3-utils": {
19598+ "version": "1.0.0-beta.54",
19599+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
19600+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
19601+ "requires": {
19602+ "@babel/runtime": "^7.3.1",
19603+ "@types/bn.js": "^4.11.4",
19604+ "@types/node": "^10.12.18",
19605+ "bn.js": "4.11.8",
19483− "eth-lib": "0.1.27",
19606+ "eth-lib": "0.2.8",
19484− "ethjs-unit": "0.1.6",
19607+ "ethjs-unit": "^0.1.6",
19608+ "lodash": "^4.17.11",
19485 "number-to-bn": "1.7.0",
19609 "number-to-bn": "1.7.0",
19486 "randomhex": "0.1.5",
19610 "randomhex": "0.1.5",
19487− "underscore": "1.8.3",
19488 "utf8": "2.1.1"
19611 "utf8": "2.1.1"
19489 }
19612 }
19490 }
19613 }
19491 }
19614 }
19492 },
19615 },
19493 "web3-core-method": {
19616 "web3-core-method": {
19494− "version": "1.0.0-beta.33",
19617+ "version": "1.0.0-beta.54",
19495− "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.33.tgz",
19618+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.54.tgz",
19496− "integrity": "sha1-7Y7ExK+rIdwJid41g2hEZlIrboY=",
19619+ "integrity": "sha512-5Ar3+jj1tOdNA8+ra105QD+cYef5w9wmgmaaIyGmjsgPZGMDeCIIPLgdSdFuyOdgPhy0zKhhwJsIzr3fJXtMxw==",
19497− "requires": {
19620+ "requires": {
19498− "underscore": "1.8.3",
19621+ "@babel/runtime": "^7.3.1",
19499− "web3-core-helpers": "1.0.0-beta.33",
19622+ "eventemitter3": "3.1.0",
19500− "web3-core-promievent": "1.0.0-beta.33",
19623+ "lodash": "^4.17.11"
19501− "web3-core-subscriptions": "1.0.0-beta.33",
19502− "web3-utils": "1.0.0-beta.33"
19503 },
19624 },
19504 "dependencies": {
19625 "dependencies": {
19505− "bn.js": {
19626+ "@babel/runtime": {
19506− "version": "4.11.6",
19507− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
19508− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
19509− },
19510− "web3-utils": {
19511− "version": "1.0.0-beta.33",
19627+ "version": "7.4.4",
19512− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
19628+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19513− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
19629+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19514 "requires": {
19630 "requires": {
19515− "bn.js": "4.11.6",
19631+ "regenerator-runtime": "^0.13.2"
19516− "eth-lib": "0.1.27",
19517− "ethjs-unit": "0.1.6",
19518− "number-to-bn": "1.7.0",
19519− "randomhex": "0.1.5",
19520− "underscore": "1.8.3",
19521− "utf8": "2.1.1"
19522 }
19632 }
19633+ },
19634+ "regenerator-runtime": {
19635+ "version": "0.13.2",
19636+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19637+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19523 }
19638 }
19524 }
19639 }
19525 },
19640 },
19526− "web3-core-promievent": {
19527− "version": "1.0.0-beta.33",
19528− "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.33.tgz",
19529− "integrity": "sha1-0fXrtgFSfdSWViw2IXblWNly01g=",
19530− "requires": {
19531− "any-promise": "1.3.0",
19532− "eventemitter3": "1.1.1"
19533− }
19534− },
19535− "web3-core-requestmanager": {
19536− "version": "1.0.0-beta.33",
19537− "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.33.tgz",
19538− "integrity": "sha1-ejbEA1QALfsXnKLb22pgEsn3Ges=",
19539− "requires": {
19540− "underscore": "1.8.3",
19541− "web3-core-helpers": "1.0.0-beta.33",
19542− "web3-providers-http": "1.0.0-beta.33",
19543− "web3-providers-ipc": "1.0.0-beta.33",
19544− "web3-providers-ws": "1.0.0-beta.33"
19545− }
19546− },
19547 "web3-core-subscriptions": {
19641 "web3-core-subscriptions": {
19548− "version": "1.0.0-beta.33",
19642+ "version": "1.0.0-beta.54",
19549− "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.33.tgz",
19643+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.54.tgz",
19550− "integrity": "sha1-YCh1yfTV9NDhYhRitfwewZs1veM=",
19644+ "integrity": "sha512-JQK0pgdIPQU0Ff0Muv8eVNeeABRzvEa4rDkqKyEkZtHKd+JcxBFWp7Y9nlDLViAq20ahH5yh4AB/pCGh7mxIiw==",
19551 "requires": {
19645 "requires": {
19646+ "@babel/runtime": "^7.3.1",
19552− "eventemitter3": "1.1.1",
19647+ "eventemitter3": "^3.1.0",
19553− "underscore": "1.8.3",
19648+ "lodash": "^4.17.11"
19554− "web3-core-helpers": "1.0.0-beta.33"
19555− }
19556− },
19557− "web3-eth": {
19558− "version": "1.0.0-beta.33",
19559− "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.33.tgz",
19560− "integrity": "sha1-hKn5TallUnyS2DitTlcN8CWJhJ8=",
19561− "requires": {
19562− "underscore": "1.8.3",
19563− "web3-core": "1.0.0-beta.33",
19564− "web3-core-helpers": "1.0.0-beta.33",
19565− "web3-core-method": "1.0.0-beta.33",
19566− "web3-core-subscriptions": "1.0.0-beta.33",
19567− "web3-eth-abi": "1.0.0-beta.33",
19568− "web3-eth-accounts": "1.0.0-beta.33",
19569− "web3-eth-contract": "1.0.0-beta.33",
19570− "web3-eth-iban": "1.0.0-beta.33",
19571− "web3-eth-personal": "1.0.0-beta.33",
19572− "web3-net": "1.0.0-beta.33",
19573− "web3-utils": "1.0.0-beta.33"
19574− },
19649+ },
19575 "dependencies": {
19650 "dependencies": {
19576− "bn.js": {
19651+ "@babel/runtime": {
19577− "version": "4.11.6",
19652+ "version": "7.4.4",
19578− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
19653+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19579− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
19654+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19655+ "requires": {
19656+ "regenerator-runtime": "^0.13.2"
19657+ }
19580 },
19658 },
19659+ "regenerator-runtime": {
19660+ "version": "0.13.2",
19661+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19662+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19663+ }
19664+ }
19665+ },
19581− "web3-utils": {
19666+ "web3-eth": {
19582− "version": "1.0.0-beta.33",
19667+ "version": "1.0.0-beta.54",
19583− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
19668+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.54.tgz",
19584− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
19669+ "integrity": "sha512-rXjx2I24xY2id43mz66RAH/ZyFpjporKIrIJTGRgyPO6jN+DdGjJbDcFpw7G/H6a+bRdOfVyo5tdl3eW1j6xdg==",
19670+ "requires": {
19671+ "@babel/runtime": "^7.3.1",
19672+ "ethereumjs-tx": "^1.3.7",
19673+ "rxjs": "^6.4.0",
19674+ "web3-core": "1.0.0-beta.54",
19675+ "web3-core-helpers": "1.0.0-beta.54",
19676+ "web3-core-method": "1.0.0-beta.54",
19677+ "web3-core-subscriptions": "1.0.0-beta.54",
19678+ "web3-eth-abi": "1.0.0-beta.54",
19679+ "web3-eth-accounts": "1.0.0-beta.54",
19680+ "web3-eth-contract": "1.0.0-beta.54",
19681+ "web3-eth-ens": "1.0.0-beta.54",
19682+ "web3-eth-iban": "1.0.0-beta.54",
19683+ "web3-eth-personal": "1.0.0-beta.54",
19684+ "web3-net": "1.0.0-beta.54",
19685+ "web3-providers": "1.0.0-beta.54",
19686+ "web3-utils": "1.0.0-beta.54"
19687+ },
19688+ "dependencies": {
19689+ "@babel/runtime": {
19690+ "version": "7.4.4",
19691+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19692+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19693+ "requires": {
19694+ "regenerator-runtime": "^0.13.2"
19695+ }
19696+ },
19697+ "eth-lib": {
19698+ "version": "0.2.8",
19699+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19700+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19701+ "requires": {
19702+ "bn.js": "^4.11.6",
19703+ "elliptic": "^6.4.0",
19704+ "xhr-request-promise": "^0.1.2"
19705+ }
19706+ },
19707+ "regenerator-runtime": {
19708+ "version": "0.13.2",
19709+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19710+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19711+ },
19712+ "rxjs": {
19713+ "version": "6.5.1",
19714+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz",
19715+ "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==",
19585 "requires": {
19716 "requires": {
19717+ "tslib": "^1.9.0"
19718+ }
19719+ },
19720+ "web3-utils": {
19721+ "version": "1.0.0-beta.54",
19722+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
19723+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
19724+ "requires": {
19725+ "@babel/runtime": "^7.3.1",
19726+ "@types/bn.js": "^4.11.4",
19727+ "@types/node": "^10.12.18",
19586− "bn.js": "4.11.6",
19728+ "bn.js": "4.11.8",
19587− "eth-lib": "0.1.27",
19729+ "eth-lib": "0.2.8",
19588− "ethjs-unit": "0.1.6",
19730+ "ethjs-unit": "^0.1.6",
19731+ "lodash": "^4.17.11",
19589 "number-to-bn": "1.7.0",
19732 "number-to-bn": "1.7.0",
19590 "randomhex": "0.1.5",
19733 "randomhex": "0.1.5",
19591− "underscore": "1.8.3",
19592 "utf8": "2.1.1"
19734 "utf8": "2.1.1"
19593 }
19735 }
19594 }
19736 }
19595 }
19737 }
19596 },
19738 },
19597 "web3-eth-abi": {
19739 "web3-eth-abi": {
19598− "version": "1.0.0-beta.33",
19740+ "version": "1.0.0-beta.54",
19599− "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.33.tgz",
19741+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.54.tgz",
19600− "integrity": "sha1-IiH3FRZDZgAypN80D2EjSRaMgko=",
19742+ "integrity": "sha512-2hePxe8VHtNvGX6i14rntPCjAuwO8Iktn95HcR/VgXW2SoqeKkqmKow+lR6ePjl/D/BQyEa/bWCaLrSpArfK9g==",
19601 "requires": {
19743 "requires": {
19602− "bn.js": "4.11.6",
19744+ "@babel/runtime": "^7.3.1",
19603− "underscore": "1.8.3",
19745+ "ethers": "^4.0.27",
19604− "web3-core-helpers": "1.0.0-beta.33",
19746+ "lodash": "^4.17.11",
19605− "web3-utils": "1.0.0-beta.33"
19747+ "web3-utils": "1.0.0-beta.54"
19606 },
19748 },
19607 "dependencies": {
19749 "dependencies": {
19608− "bn.js": {
19750+ "@babel/runtime": {
19609− "version": "4.11.6",
19751+ "version": "7.4.4",
19610− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
19752+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19611− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
19753+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19754+ "requires": {
19755+ "regenerator-runtime": "^0.13.2"
19756+ }
19612 },
19757 },
19613− "web3-utils": {
19758+ "eth-lib": {
19614− "version": "1.0.0-beta.33",
19759+ "version": "0.2.8",
19615− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
19760+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19616− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
19761+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19617 "requires": {
19762 "requires": {
19618− "bn.js": "4.11.6",
19763+ "bn.js": "^4.11.6",
19764+ "elliptic": "^6.4.0",
19765+ "xhr-request-promise": "^0.1.2"
19766+ }
19767+ },
19768+ "regenerator-runtime": {
19769+ "version": "0.13.2",
19770+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19771+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19772+ },
19773+ "web3-utils": {
19774+ "version": "1.0.0-beta.54",
19775+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
19776+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
19777+ "requires": {
19778+ "@babel/runtime": "^7.3.1",
19779+ "@types/bn.js": "^4.11.4",
19780+ "@types/node": "^10.12.18",
19781+ "bn.js": "4.11.8",
19619− "eth-lib": "0.1.27",
19782+ "eth-lib": "0.2.8",
19620− "ethjs-unit": "0.1.6",
19783+ "ethjs-unit": "^0.1.6",
19784+ "lodash": "^4.17.11",
19621 "number-to-bn": "1.7.0",
19785 "number-to-bn": "1.7.0",
19622 "randomhex": "0.1.5",
19786 "randomhex": "0.1.5",
19623− "underscore": "1.8.3",
19624 "utf8": "2.1.1"
19787 "utf8": "2.1.1"
19625 }
19788 }
19626 }
19789 }
19627 }
19790 }
19628 },
19791 },
19629 "web3-eth-accounts": {
19792 "web3-eth-accounts": {
19630− "version": "1.0.0-beta.33",
19793+ "version": "1.0.0-beta.54",
19631− "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.33.tgz",
19794+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.54.tgz",
19632− "integrity": "sha1-JajX9OWOHpk7kvBpVILMzckhL5E=",
19795+ "integrity": "sha512-/cIwYx4vod+W05tyQoLBcmBs2wGcnvuyvptoRk2y+krwsVNY+8OvUCu8hU4pIqhH8lt6Q++D1dshttsZsue5hw==",
19633 "requires": {
19796 "requires": {
19634− "any-promise": "1.3.0",
19797+ "@babel/runtime": "^7.3.1",
19635 "crypto-browserify": "3.12.0",
19798 "crypto-browserify": "3.12.0",
19636− "eth-lib": "0.2.7",
19799+ "eth-lib": "0.2.8",
19800+ "lodash": "^4.17.11",
19637 "scrypt.js": "0.2.0",
19801 "scrypt.js": "0.2.0",
19638− "underscore": "1.8.3",
19639− "uuid": "2.0.1",
19802+ "uuid": "3.3.2",
19640− "web3-core": "1.0.0-beta.33",
19803+ "web3-core": "1.0.0-beta.54",
19641− "web3-core-helpers": "1.0.0-beta.33",
19804+ "web3-core-helpers": "1.0.0-beta.54",
19642− "web3-core-method": "1.0.0-beta.33",
19805+ "web3-core-method": "1.0.0-beta.54",
19806+ "web3-providers": "1.0.0-beta.54",
19643− "web3-utils": "1.0.0-beta.33"
19807+ "web3-utils": "1.0.0-beta.54"
19644 },
19808 },
19645 "dependencies": {
19809 "dependencies": {
19810+ "@babel/runtime": {
19811+ "version": "7.4.4",
19812+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19813+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19814+ "requires": {
19815+ "regenerator-runtime": "^0.13.2"
19816+ }
19817+ },
19646 "eth-lib": {
19818 "eth-lib": {
19647− "version": "0.2.7",
19819+ "version": "0.2.8",
19648− "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz",
19820+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19649− "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=",
19821+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19650 "requires": {
19822 "requires": {
19651 "bn.js": "^4.11.6",
19823 "bn.js": "^4.11.6",
19652 "elliptic": "^6.4.0",
19824 "elliptic": "^6.4.0",
19653 "xhr-request-promise": "^0.1.2"
19825 "xhr-request-promise": "^0.1.2"
19654 }
19826 }
19655 },
19827 },
19656− "uuid": {
19828+ "regenerator-runtime": {
19657− "version": "2.0.1",
19829+ "version": "0.13.2",
19658− "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
19830+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19659− "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w="
19831+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19660 },
19832 },
19661 "web3-utils": {
19833 "web3-utils": {
19662− "version": "1.0.0-beta.33",
19834+ "version": "1.0.0-beta.54",
19663− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
19835+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
19664− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
19836+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
19665− "requires": {
19837+ "requires": {
19838+ "@babel/runtime": "^7.3.1",
19666− "bn.js": "4.11.6",
19839+ "@types/bn.js": "^4.11.4",
19840+ "@types/node": "^10.12.18",
19841+ "bn.js": "4.11.8",
19667− "eth-lib": "0.1.27",
19842+ "eth-lib": "0.2.8",
19668− "ethjs-unit": "0.1.6",
19843+ "ethjs-unit": "^0.1.6",
19844+ "lodash": "^4.17.11",
19669 "number-to-bn": "1.7.0",
19845 "number-to-bn": "1.7.0",
19670 "randomhex": "0.1.5",
19846 "randomhex": "0.1.5",
19671− "underscore": "1.8.3",
19672 "utf8": "2.1.1"
19847 "utf8": "2.1.1"
19673− },
19674− "dependencies": {
19675− "bn.js": {
19676− "version": "4.11.6",
19677− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
19678− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
19679− },
19680− "eth-lib": {
19681− "version": "0.1.27",
19682− "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz",
19683− "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==",
19684− "requires": {
19685− "bn.js": "^4.11.6",
19686− "elliptic": "^6.4.0",
19687− "keccakjs": "^0.2.1",
19688− "nano-json-stream-parser": "^0.1.2",
19689− "servify": "^0.1.12",
19690− "ws": "^3.0.0",
19691− "xhr-request-promise": "^0.1.2"
19692− }
19693− }
19694 }
19848 }
19695 }
19849 }
19696 }
19850 }
19697 },
19851 },
19698 "web3-eth-contract": {
19852 "web3-eth-contract": {
19699− "version": "1.0.0-beta.33",
19853+ "version": "1.0.0-beta.54",
19700− "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.33.tgz",
19854+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.54.tgz",
19701− "integrity": "sha1-nlkZ8pF6PGe0+2Vp1JxeMDiSW84=",
19855+ "integrity": "sha512-on5LfhA3041VKo1wIlA16HeNIyy+JkyoM/lTLOPHMueD2b+4+USFh+x8rKE4LNrtvjq4wE8+emxLmHrRez459Q==",
19702− "requires": {
19856+ "requires": {
19703− "underscore": "1.8.3",
19857+ "@babel/runtime": "^7.3.1",
19858+ "@types/bn.js": "^4.11.4",
19859+ "lodash": "^4.17.11",
19704− "web3-core": "1.0.0-beta.33",
19860+ "web3-core": "1.0.0-beta.54",
19705− "web3-core-helpers": "1.0.0-beta.33",
19861+ "web3-core-helpers": "1.0.0-beta.54",
19706− "web3-core-method": "1.0.0-beta.33",
19862+ "web3-core-method": "1.0.0-beta.54",
19707− "web3-core-promievent": "1.0.0-beta.33",
19708− "web3-core-subscriptions": "1.0.0-beta.33",
19863+ "web3-core-subscriptions": "1.0.0-beta.54",
19709− "web3-eth-abi": "1.0.0-beta.33",
19864+ "web3-eth-abi": "1.0.0-beta.54",
19865+ "web3-eth-accounts": "1.0.0-beta.54",
19866+ "web3-providers": "1.0.0-beta.54",
19710− "web3-utils": "1.0.0-beta.33"
19867+ "web3-utils": "1.0.0-beta.54"
19711 },
19868 },
19712 "dependencies": {
19869 "dependencies": {
19713− "bn.js": {
19870+ "@babel/runtime": {
19871+ "version": "7.4.4",
19872+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19873+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19874+ "requires": {
19875+ "regenerator-runtime": "^0.13.2"
19876+ }
19877+ },
19878+ "eth-lib": {
19714− "version": "4.11.6",
19879+ "version": "0.2.8",
19715− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
19880+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19716− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
19881+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19882+ "requires": {
19883+ "bn.js": "^4.11.6",
19884+ "elliptic": "^6.4.0",
19885+ "xhr-request-promise": "^0.1.2"
19886+ }
19887+ },
19888+ "regenerator-runtime": {
19889+ "version": "0.13.2",
19890+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19891+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19717 },
19892 },
19718 "web3-utils": {
19893 "web3-utils": {
19719− "version": "1.0.0-beta.33",
19894+ "version": "1.0.0-beta.54",
19720− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
19895+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
19721− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
19896+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
19897+ "requires": {
19898+ "@babel/runtime": "^7.3.1",
19899+ "@types/bn.js": "^4.11.4",
19900+ "@types/node": "^10.12.18",
19901+ "bn.js": "4.11.8",
19902+ "eth-lib": "0.2.8",
19903+ "ethjs-unit": "^0.1.6",
19904+ "lodash": "^4.17.11",
19905+ "number-to-bn": "1.7.0",
19906+ "randomhex": "0.1.5",
19907+ "utf8": "2.1.1"
19908+ }
19909+ }
19910+ }
19911+ },
19912+ "web3-eth-ens": {
19913+ "version": "1.0.0-beta.54",
19914+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.54.tgz",
19915+ "integrity": "sha512-YXdBq7qB0Hfp3+FZKwsUOkHxcM0F0mGDNSEhjVrfuJy7+S+qKA4/gXVMoUA3z+M0TbygtHr7cgY0ayz/n8s3BQ==",
19916+ "requires": {
19917+ "@babel/runtime": "^7.3.1",
19918+ "eth-ens-namehash": "2.0.8",
19919+ "lodash": "^4.17.11",
19920+ "web3-core": "1.0.0-beta.54",
19921+ "web3-core-helpers": "1.0.0-beta.54",
19922+ "web3-core-method": "1.0.0-beta.54",
19923+ "web3-eth-abi": "1.0.0-beta.54",
19924+ "web3-eth-contract": "1.0.0-beta.54",
19925+ "web3-net": "1.0.0-beta.54",
19926+ "web3-providers": "1.0.0-beta.54",
19927+ "web3-utils": "1.0.0-beta.54"
19928+ },
19929+ "dependencies": {
19930+ "@babel/runtime": {
19931+ "version": "7.4.4",
19932+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19933+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19934+ "requires": {
19935+ "regenerator-runtime": "^0.13.2"
19936+ }
19937+ },
19938+ "eth-lib": {
19939+ "version": "0.2.8",
19940+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19941+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19722 "requires": {
19942 "requires": {
19723− "bn.js": "4.11.6",
19943+ "bn.js": "^4.11.6",
19944+ "elliptic": "^6.4.0",
19945+ "xhr-request-promise": "^0.1.2"
19946+ }
19947+ },
19948+ "regenerator-runtime": {
19949+ "version": "0.13.2",
19950+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19951+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19952+ },
19953+ "web3-utils": {
19954+ "version": "1.0.0-beta.54",
19955+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
19956+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
19957+ "requires": {
19958+ "@babel/runtime": "^7.3.1",
19959+ "@types/bn.js": "^4.11.4",
19960+ "@types/node": "^10.12.18",
19961+ "bn.js": "4.11.8",
19724− "eth-lib": "0.1.27",
19962+ "eth-lib": "0.2.8",
19725− "ethjs-unit": "0.1.6",
19963+ "ethjs-unit": "^0.1.6",
19964+ "lodash": "^4.17.11",
19726 "number-to-bn": "1.7.0",
19965 "number-to-bn": "1.7.0",
19727 "randomhex": "0.1.5",
19966 "randomhex": "0.1.5",
19728− "underscore": "1.8.3",
19729 "utf8": "2.1.1"
19967 "utf8": "2.1.1"
19730 }
19968 }
19731 }
19969 }
19732 }
19970 }
19733 },
19971 },
19734 "web3-eth-iban": {
19972 "web3-eth-iban": {
19735− "version": "1.0.0-beta.33",
19973+ "version": "1.0.0-beta.54",
19736− "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.33.tgz",
19974+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.54.tgz",
19737− "integrity": "sha1-HXPQxSiKRWWxdUp1tfs+oLd6Uy8=",
19975+ "integrity": "sha512-wgPP7KFb3zKOk7FAeRCcUkGryqRPvPL38eMWNlsqcwcrq3Hmj/wdVSnARYed7Xg0pcagabSyaPtEGuHnxCmtRg==",
19738 "requires": {
19976 "requires": {
19977+ "@babel/runtime": "^7.3.1",
19739− "bn.js": "4.11.6",
19978+ "bn.js": "4.11.8",
19740− "web3-utils": "1.0.0-beta.33"
19979+ "web3-utils": "1.0.0-beta.54"
19741 },
19980 },
19742 "dependencies": {
19981 "dependencies": {
19743− "bn.js": {
19982+ "@babel/runtime": {
19744− "version": "4.11.6",
19983+ "version": "7.4.4",
19745− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
19984+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19746− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
19985+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19986+ "requires": {
19987+ "regenerator-runtime": "^0.13.2"
19988+ }
19747 },
19989 },
19748− "web3-utils": {
19990+ "eth-lib": {
19749− "version": "1.0.0-beta.33",
19991+ "version": "0.2.8",
19750− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
19992+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19751− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
19993+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19752 "requires": {
19994 "requires": {
19753− "bn.js": "4.11.6",
19995+ "bn.js": "^4.11.6",
19996+ "elliptic": "^6.4.0",
19997+ "xhr-request-promise": "^0.1.2"
19998+ }
19999+ },
20000+ "regenerator-runtime": {
20001+ "version": "0.13.2",
20002+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
20003+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
20004+ },
20005+ "web3-utils": {
20006+ "version": "1.0.0-beta.54",
20007+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
20008+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
20009+ "requires": {
20010+ "@babel/runtime": "^7.3.1",
20011+ "@types/bn.js": "^4.11.4",
20012+ "@types/node": "^10.12.18",
20013+ "bn.js": "4.11.8",
19754− "eth-lib": "0.1.27",
20014+ "eth-lib": "0.2.8",
19755− "ethjs-unit": "0.1.6",
20015+ "ethjs-unit": "^0.1.6",
20016+ "lodash": "^4.17.11",
19756 "number-to-bn": "1.7.0",
20017 "number-to-bn": "1.7.0",
19757 "randomhex": "0.1.5",
20018 "randomhex": "0.1.5",
19758− "underscore": "1.8.3",
19759 "utf8": "2.1.1"
20019 "utf8": "2.1.1"
19760 }
20020 }
19761 }
20021 }
19762 }
20022 }
19763 },
20023 },
19764 "web3-eth-personal": {
20024 "web3-eth-personal": {
19765− "version": "1.0.0-beta.33",
20025+ "version": "1.0.0-beta.54",
19766− "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.33.tgz",
20026+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.54.tgz",
19767− "integrity": "sha1-tOSFh8xOfrAY2ib947Tzul+bmO8=",
20027+ "integrity": "sha512-bnKbNXgo5lInir8FQ0cyL/55e/vq3xWBNw//fAvUCPKLgL+PQ9eGhr6ftApJTpxapAgMIEHzpP3rjtfLC5djWQ==",
19768− "requires": {
20028+ "requires": {
20029+ "@babel/runtime": "^7.3.1",
19769− "web3-core": "1.0.0-beta.33",
20030+ "web3-core": "1.0.0-beta.54",
19770− "web3-core-helpers": "1.0.0-beta.33",
20031+ "web3-core-helpers": "1.0.0-beta.54",
19771− "web3-core-method": "1.0.0-beta.33",
20032+ "web3-core-method": "1.0.0-beta.54",
20033+ "web3-eth-accounts": "1.0.0-beta.54",
19772− "web3-net": "1.0.0-beta.33",
20034+ "web3-net": "1.0.0-beta.54",
20035+ "web3-providers": "1.0.0-beta.54",
19773− "web3-utils": "1.0.0-beta.33"
20036+ "web3-utils": "1.0.0-beta.54"
19774 },
20037 },
19775 "dependencies": {
20038 "dependencies": {
19776− "bn.js": {
20039+ "@babel/runtime": {
19777− "version": "4.11.6",
20040+ "version": "7.4.4",
19778− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
20041+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19779− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
20042+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
20043+ "requires": {
20044+ "regenerator-runtime": "^0.13.2"
20045+ }
19780 },
20046 },
19781− "web3-utils": {
20047+ "eth-lib": {
19782− "version": "1.0.0-beta.33",
20048+ "version": "0.2.8",
19783− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
20049+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19784− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
20050+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19785 "requires": {
20051 "requires": {
19786− "bn.js": "4.11.6",
20052+ "bn.js": "^4.11.6",
20053+ "elliptic": "^6.4.0",
20054+ "xhr-request-promise": "^0.1.2"
20055+ }
20056+ },
20057+ "regenerator-runtime": {
20058+ "version": "0.13.2",
20059+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
20060+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
20061+ },
20062+ "web3-utils": {
20063+ "version": "1.0.0-beta.54",
20064+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
20065+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
20066+ "requires": {
20067+ "@babel/runtime": "^7.3.1",
20068+ "@types/bn.js": "^4.11.4",
20069+ "@types/node": "^10.12.18",
20070+ "bn.js": "4.11.8",
19787− "eth-lib": "0.1.27",
20071+ "eth-lib": "0.2.8",
19788− "ethjs-unit": "0.1.6",
20072+ "ethjs-unit": "^0.1.6",
20073+ "lodash": "^4.17.11",
19789 "number-to-bn": "1.7.0",
20074 "number-to-bn": "1.7.0",
19790 "randomhex": "0.1.5",
20075 "randomhex": "0.1.5",
19791− "underscore": "1.8.3",
19792 "utf8": "2.1.1"
20076 "utf8": "2.1.1"
19793 }
20077 }
19794 }
20078 }
19795 }
20079 }
19796 },
20080 },
19797 "web3-net": {
20081 "web3-net": {
19798− "version": "1.0.0-beta.33",
20082+ "version": "1.0.0-beta.54",
19799− "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.33.tgz",
20083+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.54.tgz",
19800− "integrity": "sha1-tskNGg4WJuquiz2SKsFTZy/VZEU=",
20084+ "integrity": "sha512-3YjdjHvUpitGDs3b+g9HfzWQdd6fd1mpHDCLgBJQUykKgjwxgkEbb0Dm7vqQMSggLm6W37LV2xBQjIOMmYsA/Q==",
19801 "requires": {
20085 "requires": {
20086+ "@babel/runtime": "^7.3.1",
20087+ "lodash": "^4.17.11",
20088+ "web3-core": "1.0.0-beta.54",
19802− "web3-core": "1.0.0-beta.33",
20089+ "web3-core-helpers": "1.0.0-beta.54",
19803− "web3-core-method": "1.0.0-beta.33",
20090+ "web3-core-method": "1.0.0-beta.54",
20091+ "web3-providers": "1.0.0-beta.54",
19804− "web3-utils": "1.0.0-beta.33"
20092+ "web3-utils": "1.0.0-beta.54"
19805 },
20093 },
19806 "dependencies": {
20094 "dependencies": {
19807− "bn.js": {
20095+ "@babel/runtime": {
19808− "version": "4.11.6",
20096+ "version": "7.4.4",
19809− "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
20097+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19810− "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
20098+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
20099+ "requires": {
20100+ "regenerator-runtime": "^0.13.2"
20101+ }
19811 },
20102 },
19812− "web3-utils": {
20103+ "eth-lib": {
19813− "version": "1.0.0-beta.33",
20104+ "version": "0.2.8",
19814− "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.33.tgz",
20105+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
19815− "integrity": "sha1-4JG3mU8JtxSwGYpAV9OtLrjL4jg=",
20106+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
19816 "requires": {
20107 "requires": {
19817− "bn.js": "4.11.6",
20108+ "bn.js": "^4.11.6",
20109+ "elliptic": "^6.4.0",
20110+ "xhr-request-promise": "^0.1.2"
20111+ }
20112+ },
20113+ "regenerator-runtime": {
20114+ "version": "0.13.2",
20115+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
20116+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
20117+ },
20118+ "web3-utils": {
20119+ "version": "1.0.0-beta.54",
20120+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
20121+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
20122+ "requires": {
20123+ "@babel/runtime": "^7.3.1",
20124+ "@types/bn.js": "^4.11.4",
20125+ "@types/node": "^10.12.18",
20126+ "bn.js": "4.11.8",
19818− "eth-lib": "0.1.27",
20127+ "eth-lib": "0.2.8",
19819− "ethjs-unit": "0.1.6",
20128+ "ethjs-unit": "^0.1.6",
20129+ "lodash": "^4.17.11",
19820 "number-to-bn": "1.7.0",
20130 "number-to-bn": "1.7.0",
19821 "randomhex": "0.1.5",
20131 "randomhex": "0.1.5",
19822− "underscore": "1.8.3",
19823 "utf8": "2.1.1"
20132 "utf8": "2.1.1"
19824 }
20133 }
19825 }
20134 }
19826 }
20135 }
19827 },
20136 },
19828− "web3-providers-http": {
20137+ "web3-providers": {
19829− "version": "1.0.0-beta.33",
20138+ "version": "1.0.0-beta.54",
19830− "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.33.tgz",
20139+ "resolved": "https://registry.npmjs.org/web3-providers/-/web3-providers-1.0.0-beta.54.tgz",
19831− "integrity": "sha1-OzWuAO599blrSTSWKtSobypVmcE=",
20140+ "integrity": "sha512-P55MQHkfU2VLt3t+3IbqRUVwOziLOMiXxKulVYXzTu9M8p9aogl1tvPjKXpRUGygCY3LsWTpt/UlJR8Aaia+CQ==",
19832 "requires": {
20141 "requires": {
19833− "web3-core-helpers": "1.0.0-beta.33",
20142+ "@babel/runtime": "^7.3.1",
19834− "xhr2": "0.1.4"
20143+ "@types/node": "^10.12.18",
19835− }
20144+ "eventemitter3": "3.1.0",
19836− },
20145+ "lodash": "^4.17.11",
19837− "web3-providers-ipc": {
20146+ "url-parse": "1.4.4",
19838− "version": "1.0.0-beta.33",
20147+ "websocket": "^1.0.28",
19839− "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.33.tgz",
20148+ "xhr2-cookies": "1.1.0"
19840− "integrity": "sha1-Twrcmv6dEsBm5L5cPFNvUHPLB8Y=",
20149+ },
19841− "requires": {
20150+ "dependencies": {
19842− "oboe": "2.1.3",
20151+ "@babel/runtime": {
19843− "underscore": "1.8.3",
20152+ "version": "7.4.4",
19844− "web3-core-helpers": "1.0.0-beta.33"
20153+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
19845− }
20154+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
19846− },
20155+ "requires": {
19847− "web3-providers-ws": {
20156+ "regenerator-runtime": "^0.13.2"
19848− "version": "1.0.0-beta.33",
20157+ }
19849− "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.33.tgz",
20158+ },
19850− "integrity": "sha1-j93qQuGbvyUh7IeVRkV6Yjqdye8=",
20159+ "regenerator-runtime": {
19851− "requires": {
20160+ "version": "0.13.2",
19852− "underscore": "1.8.3",
20161+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
19853− "web3-core-helpers": "1.0.0-beta.33",
20162+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
19854− "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible"
20163+ }
19855 }
20164 }
19856 },
20165 },
19857 "web3-shh": {
20166 "web3-shh": {
19858− "version": "1.0.0-beta.33",
20167+ "version": "1.0.0-beta.54",
19859− "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.33.tgz",
20168+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.54.tgz",
19860− "integrity": "sha1-+Z4mVz9uCZMhrw2fK/z+Pe01UKE=",
20169+ "integrity": "sha512-YO+sMZ3szof0wTZ+Lh43mkioVGSLhDH2paGzcBB7JM8PoZ9QbuLquNypiM3XWfehNusCQmEGvq0R0nVZe/Juaw==",
19861 "requires": {
20170 "requires": {
20171+ "@babel/runtime": "^7.3.1",
20172+ "web3-core": "1.0.0-beta.54",
19862− "web3-core": "1.0.0-beta.33",
20173+ "web3-core-helpers": "1.0.0-beta.54",
19863− "web3-core-method": "1.0.0-beta.33",
20174+ "web3-core-method": "1.0.0-beta.54",
19864− "web3-core-subscriptions": "1.0.0-beta.33",
20175+ "web3-core-subscriptions": "1.0.0-beta.54",
19865− "web3-net": "1.0.0-beta.33"
20176+ "web3-net": "1.0.0-beta.54",
20177+ "web3-providers": "1.0.0-beta.54",
20178+ "web3-utils": "1.0.0-beta.54"
20179+ },
20180+ "dependencies": {
20181+ "@babel/runtime": {
20182+ "version": "7.4.4",
20183+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.4.tgz",
20184+ "integrity": "sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg==",
20185+ "requires": {
20186+ "regenerator-runtime": "^0.13.2"
20187+ }
20188+ },
20189+ "eth-lib": {
20190+ "version": "0.2.8",
20191+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
20192+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
20193+ "requires": {
20194+ "bn.js": "^4.11.6",
20195+ "elliptic": "^6.4.0",
20196+ "xhr-request-promise": "^0.1.2"
20197+ }
20198+ },
20199+ "regenerator-runtime": {
20200+ "version": "0.13.2",
20201+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
20202+ "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
20203+ },
20204+ "web3-utils": {
20205+ "version": "1.0.0-beta.54",
20206+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.54.tgz",
20207+ "integrity": "sha512-yb/cjzjTU99P/9bEaAnb6cjqGjyMUF0OmjD7/ix89IfcDhBJ3jExSuClTAKU8Hz9Rf7IXLiXqBny9W8PdogwmQ==",
20208+ "requires": {
20209+ "@babel/runtime": "^7.3.1",
20210+ "@types/bn.js": "^4.11.4",
20211+ "@types/node": "^10.12.18",
20212+ "bn.js": "4.11.8",
20213+ "eth-lib": "0.2.8",
20214+ "ethjs-unit": "^0.1.6",
20215+ "lodash": "^4.17.11",
20216+ "number-to-bn": "1.7.0",
20217+ "randomhex": "0.1.5",
20218+ "utf8": "2.1.1"
20219+ }
20220+ }
19866 }
20221 }
19867 },
20222 },
19868 "web3-utils": {
20223 "web3-utils": {
@@ -20571,12 +20926,13 @@
20571 }
20926 }
20572 },
20927 },
20573 "websocket": {
20928 "websocket": {
20574− "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2",
20929+ "version": "1.0.28",
20575− "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible",
20930+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.28.tgz",
20931+ "integrity": "sha512-00y/20/80P7H4bCYkzuuvvfDvh+dgtXi5kzDf3UcZwN6boTYaKvsrtZ5lIYm1Gsg48siMErd9M4zjSYfYFHTrA==",
20576 "requires": {
20932 "requires": {
20577 "debug": "^2.2.0",
20933 "debug": "^2.2.0",
20578− "nan": "^2.3.3",
20934+ "nan": "^2.11.0",
20579− "typedarray-to-buffer": "^3.1.2",
20935+ "typedarray-to-buffer": "^3.1.5",
20580 "yaeti": "^0.0.6"
20936 "yaeti": "^0.0.6"
20581 }
20937 }
20582 },
20938 },
@@ -20948,10 +21304,13 @@
20948 "xhr-request": "^1.0.1"
21304 "xhr-request": "^1.0.1"
20949 }
21305 }
20950 },
21306 },
20951− "xhr2": {
21307+ "xhr2-cookies": {
20952− "version": "0.1.4",
21308+ "version": "1.1.0",
20953− "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz",
21309+ "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz",
20954− "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8="
21310+ "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=",
21311+ "requires": {
21312+ "cookiejar": "^2.1.1"
21313+ }
20955 },
21314 },
20956 "xml-name-validator": {
21315 "xml-name-validator": {
20957 "version": "3.0.0",
21316 "version": "3.0.0",
@@ -20963,6 +21322,11 @@
20963 "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-1.3.1.tgz",
21322 "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-1.3.1.tgz",
20964 "integrity": "sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw=="
21323 "integrity": "sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw=="
20965 },
21324 },
21325+ "xmlhttprequest": {
21326+ "version": "1.8.0",
21327+ "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
21328+ "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw="
21329+ },
20966 "xregexp": {
21330 "xregexp": {
20967 "version": "4.0.0",
21331 "version": "4.0.0",
20968 "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
21332 "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
package.json+2−2
@@ -45,7 +45,7 @@
45 "trezor-connect": "^7.0.1",
45 "trezor-connect": "^7.0.1",
46 "urbit-key-generation": "0.12.1",
46 "urbit-key-generation": "0.12.1",
47 "urbit-ob": "^3.1.0",
47 "urbit-ob": "^3.1.0",
48− "web3": "1.0.0-beta.33",
48+ "web3": "1.0.0-beta.54",
49 "web3-utils": "^1.0.0-beta.52"
49 "web3-utils": "^1.0.0-beta.52"
50 },
50 },
51 "scripts": {
51 "scripts": {
@@ -56,7 +56,7 @@
56 "checksum": "cd build && find . -exec shasum -a256 {} ';' > ../checksums.txt && cd ..",
56 "checksum": "cd build && find . -exec shasum -a256 {} ';' > ../checksums.txt && cd ..",
57 "zip": "zip -ur bridge-$npm_package_version.zip README.md bridge-https.py checksums.txt && cd build && zip -ur ../bridge-$npm_package_version.zip ./* && cd ..",
57 "zip": "zip -ur bridge-$npm_package_version.zip README.md bridge-https.py checksums.txt && cd build && zip -ur ../bridge-$npm_package_version.zip ./* && cd ..",
58 "release": "npm install && npm run build && npm run checksum && npm run zip",
58 "release": "npm install && npm run build && npm run checksum && npm run zip",
59− "pilot:ganache": "ganache-cli --blockTime 1 -m 'benefit crew supreme gesture quantum web media hazard theory mercy wing kitten' > /dev/null &",
59+ "pilot:ganache": "ganache-cli --blockTime 1 --networkId 1 -m 'benefit crew supreme gesture quantum web media hazard theory mercy wing kitten' > /dev/null &",
60 "pilot:deploy": "cd node_modules/azimuth-solidity && truffle deploy",
60 "pilot:deploy": "cd node_modules/azimuth-solidity && truffle deploy",
61 "pilot:setup": "npm run pilot:ganache && npm run pilot:deploy",
61 "pilot:setup": "npm run pilot:ganache && npm run pilot:deploy",
62 "pilot": "HTTPS=true npm-run-all pilot:setup start pilot:cleanup --continue-on-error",
62 "pilot": "HTTPS=true npm-run-all pilot:setup start pilot:cleanup --continue-on-error",
src/bridge/components/StatelessTransaction.js+126−40
@@ -1,4 +1,5 @@
1import { Nothing, Just } from 'folktale/maybe'
1import { Nothing, Just } from 'folktale/maybe'
2+import { Ok } from 'folktale/result'
2import React from 'react'
3import React from 'react'
3
4
4import { Code, H3 } from './Base'
5import { Code, H3 } from './Base'
@@ -10,14 +11,25 @@ import { Warning } from '../components/Base'
10import { addressFromSecp256k1Public } from '../lib/wallet'
11import { addressFromSecp256k1Public } from '../lib/wallet'
11import { BRIDGE_ERROR } from '../lib/error'
12import { BRIDGE_ERROR } from '../lib/error'
12import { ROUTE_NAMES } from '../lib/router'
13import { ROUTE_NAMES } from '../lib/router'
14+import * as tank from '../lib/tank'
13
15
14import {
16import {
15 sendSignedTransaction,
17 sendSignedTransaction,
18+ waitForTransactionConfirm,
16 fromWei,
19 fromWei,
20+ toWei,
21+ hexify,
17 renderSignedTx,
22 renderSignedTx,
18 signTransaction
23 signTransaction
19 } from '../lib/txn'
24 } from '../lib/txn'
20
25
26+const SUBMISSION_STATES = {
27+ PROMPT: 'Send transaction',
28+ PREPARING: 'Preparing...',
29+ FUNDING: 'Finding transaction funding...',
30+ SENDING: 'Sending transaction...'
31+};
32+
21class StatelessTransaction extends React.Component {
33class StatelessTransaction extends React.Component {
22
34
23 constructor(props) {
35 constructor(props) {
@@ -33,11 +45,11 @@ class StatelessTransaction extends React.Component {
33 nonce: '0',
45 nonce: '0',
34 stx: Nothing(),
46 stx: Nothing(),
35 txn: Nothing(),
47 txn: Nothing(),
48+ txStatus: SUBMISSION_STATES.PROMPT,
36 txError: Nothing()
49 txError: Nothing()
37 }
50 }
38
51
39 this.createUnsignedTxn = this.createUnsignedTxn.bind(this)
52 this.createUnsignedTxn = this.createUnsignedTxn.bind(this)
40− this.submit = this.submit.bind(this)
41 this.setUserApproval = this.setUserApproval.bind(this)
53 this.setUserApproval = this.setUserApproval.bind(this)
42 this.setTxn = this.setTxn.bind(this)
54 this.setTxn = this.setTxn.bind(this)
43 this.setStx = this.setStx.bind(this)
55 this.setStx = this.setStx.bind(this)
@@ -86,32 +98,6 @@ class StatelessTransaction extends React.Component {
86 });
98 });
87 }
99 }
88
100
89− submit(){
90− const { props, state } = this
91− sendSignedTransaction(props.web3.value, state.stx, props.setTxnConfirmations)
92− .then(sent => {
93− props.setTxnHashCursor(sent)
94− props.popRoute()
95−
96− let routeData = {};
97− if (props.networkSeed) {
98− props.setNetworkSeedCache(props.networkSeed);
99− routeData.promptKeyfile = true;
100− }
101− if (props.promptText) {
102− routeData.promptText = props.promptText;
103− }
104− props.pushRoute(ROUTE_NAMES.SENT_TRANSACTION, routeData);
105− })
106− .catch(err => {
107− if (err.map) {
108− this.setState({ txError: err.map(val => val.merge()) })
109− } else {
110− this.setState({ txError: err })
111− }
112− })
113− }
114−
115 handleChainUpdate(chainId) {
101 handleChainUpdate(chainId) {
116 if (chainId === "custom") {
102 if (chainId === "custom") {
117 this.setState({
103 this.setState({
@@ -194,16 +180,114 @@ class StatelessTransaction extends React.Component {
194 })
180 })
195 }
181 }
196
182
197− // TODO: Investigate
183+ async sendTxn() {
198− // setState doesn't seem to work in SetProxy/submit;
184+ const { props, state } = this;
199− // - TypeError: Cannot read property 'updater' of undefined
185+ const web3 = props.web3.value;
200− // so just modifying the DOM manually here. (https://imgur.com/a/i0Qsyq1)
201
186
202− sendTxn(e) {
187+ const stx = state.stx.matchWith({
203− e.target.setAttribute("disabled", true);
188+ Just: tx => tx.value,
204− let spinner = e.target.querySelectorAll('.btn-spinner')[0];
189+ Nothing: () => {
205− spinner.classList.remove('hide');
190+ throw BRIDGE_ERROR.MISSING_TXN;
206− this.submit()
191+ }
192+ });
193+
194+ if (props.beforeSend) {
195+ try {
196+ this.setState({ txStatus: SUBMISSION_STATES.PREPARING });
197+ const res = await props.beforeSend(stx);
198+ if (res === false) throw 'beforeSend disallowed sending';
199+ } catch (e) {
200+ console.log('beforeSend error', e);
201+ this.setState({
202+ txStatus: SUBMISSION_STATES.PROMPT,
203+ txError: Just('Something went wrong!')
204+ });
205+ return;
206+ }
207+ }
208+
209+ this.setState({ txStatus: SUBMISSION_STATES.FUNDING });
210+
211+ const rawTx = hexify(stx.serialize());
212+ const cost = (state.gasLimit * toWei(state.gasPrice, 'gwei'));
213+
214+ //TODO need a lib function or something for address=, it's everywhere
215+ const address = props.wallet.matchWith({
216+ Just: wal => addressFromSecp256k1Public(wal.value.publicKey),
217+ Nothing: () => {
218+ throw BRIDGE_ERROR.MISSING_WALLET
219+ }
220+ });
221+ let balance = await web3.eth.getBalance(address);
222+ let hasBalance = (balance >= cost);
223+
224+ let usedTank = false;
225+ // if we need to, try and fund the transaction
226+ if (!hasBalance) {
227+ hasBalance = await this.ensureFundsFor(web3, address, cost, [rawTx]);
228+ usedTank = hasBalance;
229+ }
230+
231+ // if we still don't have sufficient balance, fail and tell the user
232+ if (!hasBalance) {
233+ this.setState({
234+ txStatus: SUBMISSION_STATES.PROMPT,
235+ txError: Just(`Insufficient funds.
236+ Address ${address} needs at least ${fromWei(cost.toString())} ETH,
237+ currently has ${fromWei(balance.toString())} ETH.`
238+ )
239+ });
240+
241+ // if we have the balance, proceed with submission
242+ } else {
243+ this.setState({ txStatus: SUBMISSION_STATES.SENDING });
244+
245+ sendSignedTransaction(
246+ web3,
247+ state.stx,
248+ usedTank,
249+ props.setTxnConfirmations
250+ )
251+ .then(txHash => {
252+ props.onSent(Just(Ok(txHash)), state.stx.value);
253+ props.popRoute();
254+
255+ let routeData = {};
256+ if (props.networkSeed) {
257+ props.setNetworkSeedCache(props.networkSeed);
258+ routeData.promptKeyfile = true;
259+ }
260+ props.pushRoute(ROUTE_NAMES.SENT_TRANSACTION, routeData);
261+ })
262+ .catch(err => {
263+ this.setState({
264+ txStatus: SUBMISSION_STATES.PROMPT,
265+ txError: Just(err)
266+ });
267+ });
268+ }
269+ }
270+
271+ //TODO partially copied from InviteTransactions, try to move into tank lib
272+ async ensureFundsFor(web3, address, cost, signedTxs) {
273+ let balance = await web3.eth.getBalance(address);
274+ if (cost > balance) {
275+ try {
276+
277+ const res = await tank.fundTransactions(signedTxs);
278+ if (!res.success) {
279+ return false;
280+ } else {
281+ await waitForTransactionConfirm(web3, res.txHash);
282+ return true;
283+ }
284+
285+ } catch (e) {
286+ return false;
287+ }
288+ } else {
289+ return true;
290+ }
207 }
291 }
208
292
209 getChainTitle(chainId) {
293 getChainTitle(chainId) {
@@ -249,7 +333,7 @@ class StatelessTransaction extends React.Component {
249 const { web3, canGenerate } = this.props
333 const { web3, canGenerate } = this.props
250 const { gasPrice, gasLimit, nonce, chainId,
334 const { gasPrice, gasLimit, nonce, chainId,
251 txn, stx, userApproval, showGasDetails,
335 txn, stx, userApproval, showGasDetails,
252− customChain } = this.state
336+ customChain, txStatus } = this.state
253
337
254 const { setNonce, setChainId, setGasLimit, setGasPrice, toggleGasDetails,
338 const { setNonce, setChainId, setGasLimit, setGasPrice, toggleGasDetails,
255 setUserApproval, sendTxn, createUnsignedTxn, handleChainUpdate } = this
339 setUserApproval, sendTxn, createUnsignedTxn, handleChainUpdate } = this
@@ -439,16 +523,18 @@ class StatelessTransaction extends React.Component {
439 </div>
523 </div>
440 </CheckboxButton>
524 </CheckboxButton>
441
525
526+ const sending = (txStatus !== SUBMISSION_STATES.PROMPT);
527+ const sendTxnSpinner = sending ? '' : 'hide';
442 const sendTxnButton =
528 const sendTxnButton =
443 <Button
529 <Button
444 prop-size={ 'xl wide' }
530 prop-size={ 'xl wide' }
445 className={ 'mt-8' }
531 className={ 'mt-8' }
446− disabled={ !canSend }
532+ disabled={ !canSend || sending }
447 onClick={ sendTxn }
533 onClick={ sendTxn }
448 >
534 >
449 <span className="relative">
535 <span className="relative">
450− <span className="btn-spinner hide"></span>
536+ <span className={`btn-spinner ${sendTxnSpinner}`}></span>
451− { 'Send Transaction' }
537+ { txStatus }
452 </span>
538 </span>
453 </Button>
539 </Button>
454
540
src/bridge/lib/tank.js+1
@@ -26,6 +26,7 @@ function sendRequest(where, what) {
26}
26}
27
27
28const remainingTransactions = point => {
28const remainingTransactions = point => {
29+ if (typeof point === 'string') point = Number(point);
29 return sendRequest('/point', {point:point});
30 return sendRequest('/point', {point:point});
30};
31};
31
32
src/bridge/lib/txn.js+38−21
@@ -138,32 +138,49 @@ const signTransaction = async config => {
138 setStx(Just(stx))
138 setStx(Just(stx))
139}
139}
140
140
141−const sendSignedTransaction = (web3, stx, confirmationCb) => {
141+const sendSignedTransaction = (web3, stx, doubtNonceError, confirmationCb) => {
142 const txn = stx.matchWith({
142 const txn = stx.matchWith({
143 Just: (tx) => tx.value,
143 Just: (tx) => tx.value,
144 Nothing: () => {
144 Nothing: () => {
145 throw BRIDGE_ERROR.MISSING_TXN
145 throw BRIDGE_ERROR.MISSING_TXN
146 }
146 }
147− })
147+ });
148−
149− const serializedTx = addHexPrefix(txn.serialize().toString('hex'))
150
148
149+ const rawTx = addHexPrefix(txn.serialize().toString('hex'));
150+
151− return new Promise((resolve, reject) => {
151+ return new Promise(async (resolve, reject) => {
152− web3.eth.sendSignedTransaction(serializedTx)
152+ web3.eth.sendSignedTransaction(rawTx)
153− .on('transactionHash', hash =>
153+ .on('transactionHash', hash => {
154− resolve(Just(Ok(hash)))
154+ resolve(hash);
155− )
156− .on('receipt', txn => {
157− resolve(Just(Ok(txn.transactionHash)))
158− })
155+ })
159− .on('confirmation', (confirmationNum, txn) => {
156+ .on('confirmation', (confirmationNum, txn) => {
160− confirmationCb(txn.transactionHash, confirmationNum + 1)
157+ confirmationCb(txn.transactionHash, confirmationNum + 1);
161− resolve(Just(Ok(txn.transactionHash)))
158+ resolve(txn.transactionHash);
162− })
159+ })
163− .on('error', err => {
160+ .on('error', err => {
164− reject(Just(Error(err.message)))
161+ // if there's a nonce error, but we used the gas tank, it's likely
162+ // that it's because the tank already submitted our transaction.
163+ // we just wait for first confirmation here.
164+ if (doubtNonceError &&
165+ err.message.includes("the tx doesn't have the correct nonce.")) {
166+ console.log('nonce error, likely from gas tank submission, ignoring');
167+ const txHash = web3.utils.keccak256(rawTx);
168+ //TODO can we do does-exists check first?
169+ //TODO max wait time before assume fail?
170+ waitForTransactionConfirm(web3, txHash)
171+ .then(res => {
172+ if (res) {
173+ resolve(txHash);
174+ confirmationCb(txHash, 1);
175+ } else {
176+ reject('Unexpected tx failure');
177+ }
178+ });
179+ } else {
180+ reject(err.message);
165− })
181+ }
182+ });
166− })
183+ });
167}
184}
168
185
169// returns a Promise<bool>, where the bool indicates tx success/failure
186// returns a Promise<bool>, where the bool indicates tx success/failure
@@ -174,7 +191,7 @@ const waitForTransactionConfirm = (web3, txHash) => {
174 const receipt = await web3.eth.getTransactionReceipt(txHash);
191 const receipt = await web3.eth.getTransactionReceipt(txHash);
175 console.log('tried, got', receipt);
192 console.log('tried, got', receipt);
176 let confirmed = (receipt !== null);
193 let confirmed = (receipt !== null);
177− if (confirmed) resolve(receipt.status === '0x1');
194+ if (confirmed) resolve(receipt.status === true);
178 else setTimeout(checkForConfirm, 13000);
195 else setTimeout(checkForConfirm, 13000);
179 }
196 }
180 checkForConfirm();
197 checkForConfirm();
src/bridge/views/AcceptTransfer.js+1−1
@@ -125,7 +125,7 @@ class AcceptTransfer extends React.Component {
125 walletType={props.walletType}
125 walletType={props.walletType}
126 walletHdPath={props.walletHdPath}
126 walletHdPath={props.walletHdPath}
127 networkType={props.networkType}
127 networkType={props.networkType}
128− setTxnHashCursor={props.setTxnHashCursor}
128+ onSent={props.setTxnHashCursor}
129 setTxnConfirmations={props.setTxnConfirmations}
129 setTxnConfirmations={props.setTxnConfirmations}
130 popRoute={props.popRoute}
130 popRoute={props.popRoute}
131 pushRoute={props.pushRoute}
131 pushRoute={props.pushRoute}
src/bridge/views/CancelTransfer.js+1−1
@@ -86,7 +86,7 @@ class CancelTransfer extends React.Component {
86 walletType={props.walletType}
86 walletType={props.walletType}
87 walletHdPath={props.walletHdPath}
87 walletHdPath={props.walletHdPath}
88 networkType={props.networkType}
88 networkType={props.networkType}
89− setTxnHashCursor={props.setTxnHashCursor}
89+ onSent={props.setTxnHashCursor}
90 setTxnConfirmations={props.setTxnConfirmations}
90 setTxnConfirmations={props.setTxnConfirmations}
91 popRoute={props.popRoute}
91 popRoute={props.popRoute}
92 pushRoute={props.pushRoute}
92 pushRoute={props.pushRoute}
src/bridge/views/CreateGalaxy.js+1−1
@@ -211,7 +211,7 @@ class CreateGalaxy extends React.Component {
211 walletType={props.walletType}
211 walletType={props.walletType}
212 walletHdPath={props.walletHdPath}
212 walletHdPath={props.walletHdPath}
213 networkType={props.networkType}
213 networkType={props.networkType}
214− setTxnHashCursor={props.setTxnHashCursor}
214+ onSent={props.setTxnHashCursor}
215 setTxnConfirmations={props.setTxnConfirmations}
215 setTxnConfirmations={props.setTxnConfirmations}
216 popRoute={props.popRoute}
216 popRoute={props.popRoute}
217 pushRoute={props.pushRoute}
217 pushRoute={props.pushRoute}
src/bridge/views/InvitesManage.js+1−1
@@ -189,7 +189,7 @@ class InvitesManage extends React.Component {
189 walletType={this.props.walletType}
189 walletType={this.props.walletType}
190 walletHdPath={this.props.walletHdPath}
190 walletHdPath={this.props.walletHdPath}
191 networkType={this.props.networkType}
191 networkType={this.props.networkType}
192− setTxnHashCursor={this.props.setTxnHashCursor}
192+ onSent={this.props.setTxnHashCursor}
193 setTxnConfirmations={this.props.setTxnConfirmations}
193 setTxnConfirmations={this.props.setTxnConfirmations}
194 popRoute={this.props.popRoute}
194 popRoute={this.props.popRoute}
195 pushRoute={this.props.pushRoute}
195 pushRoute={this.props.pushRoute}
src/bridge/views/InvitesSend.js+1−4
@@ -56,8 +56,6 @@ class InvitesSend extends React.Component {
56 this.handleEmailInput = this.handleEmailInput.bind(this);
56 this.handleEmailInput = this.handleEmailInput.bind(this);
57 this.txnConfirmation = this.txnConfirmation.bind(this);
57 this.txnConfirmation = this.txnConfirmation.bind(this);
58 this.createUnsignedTxn = this.createUnsignedTxn.bind(this);
58 this.createUnsignedTxn = this.createUnsignedTxn.bind(this);
59−
60− this.promptText = 'The email will be sent on first confirmation. Please wait.';
61 }
59 }
62
60
63 componentDidMount() {
61 componentDidMount() {
@@ -216,12 +214,11 @@ class InvitesSend extends React.Component {
216 walletType={this.props.walletType}
214 walletType={this.props.walletType}
217 walletHdPath={this.props.walletHdPath}
215 walletHdPath={this.props.walletHdPath}
218 networkType={this.props.networkType}
216 networkType={this.props.networkType}
219− setTxnHashCursor={this.props.setTxnHashCursor}
220 setTxnConfirmations={this.txnConfirmation}
217 setTxnConfirmations={this.txnConfirmation}
218+ onSent={this.props.setTxnHashCursor}
221 popRoute={this.props.popRoute}
219 popRoute={this.props.popRoute}
222 pushRoute={this.props.pushRoute}
220 pushRoute={this.props.pushRoute}
223 // Other
221 // Other
224− promptText={this.promptText}
225 canGenerate={this.canGenerate()}
222 canGenerate={this.canGenerate()}
226 createUnsignedTxn={this.createUnsignedTxn}
223 createUnsignedTxn={this.createUnsignedTxn}
227 ref={this.statelessRef} />
224 ref={this.statelessRef} />
src/bridge/views/IssueChild.js+1−1
@@ -302,7 +302,7 @@ class IssueChild extends React.Component {
302 walletType={props.walletType}
302 walletType={props.walletType}
303 walletHdPath={props.walletHdPath}
303 walletHdPath={props.walletHdPath}
304 networkType={props.networkType}
304 networkType={props.networkType}
305− setTxnHashCursor={props.setTxnHashCursor}
305+ onSent={props.setTxnHashCursor}
306 setTxnConfirmations={props.setTxnConfirmations}
306 setTxnConfirmations={props.setTxnConfirmations}
307 popRoute={props.popRoute}
307 popRoute={props.popRoute}
308 pushRoute={props.pushRoute}
308 pushRoute={props.pushRoute}
src/bridge/views/SentTransaction.js−13
@@ -126,7 +126,6 @@ const SentTransaction = (props) => {
126 const { setPointCursor, pointCursor } = props
126 const { setPointCursor, pointCursor } = props
127
127
128 const promptKeyfile = props.routeData && props.routeData.promptKeyfile
128 const promptKeyfile = props.routeData && props.routeData.promptKeyfile
129− const promptText = props.routeData && props.routeData.promptText
130
129
131 const w3 = web3.matchWith({
130 const w3 = web3.matchWith({
132 Nothing: _ => { throw BRIDGE_ERROR.MISSING_WEB3 },
131 Nothing: _ => { throw BRIDGE_ERROR.MISSING_WEB3 },
@@ -148,17 +147,6 @@ const SentTransaction = (props) => {
148 />
147 />
149 })
148 })
150
149
151− let text;
152− if (promptText) {
153− text = (
154− <Row>
155− <Col>
156− <p>{promptText}</p>
157− </Col>
158− </Row>
159− )
160− }
161−
162 const ok =
150 const ok =
163 <Row>
151 <Row>
164 <Col>
152 <Col>
@@ -199,7 +187,6 @@ const SentTransaction = (props) => {
199 return (
187 return (
200 <div>
188 <div>
201 { body }
189 { body }
202− { text }
203 { ok }
190 { ok }
204 { keyfile }
191 { keyfile }
205 </div>
192 </div>
src/bridge/views/SetKeys.js+1−1
@@ -193,7 +193,7 @@ class SetKeys extends React.Component {
193 walletType={props.walletType}
193 walletType={props.walletType}
194 walletHdPath={props.walletHdPath}
194 walletHdPath={props.walletHdPath}
195 networkType={props.networkType}
195 networkType={props.networkType}
196− setTxnHashCursor={props.setTxnHashCursor}
196+ onSent={props.setTxnHashCursor}
197 setTxnConfirmations={props.setTxnConfirmations}
197 setTxnConfirmations={props.setTxnConfirmations}
198 popRoute={props.popRoute}
198 popRoute={props.popRoute}
199 pushRoute={props.pushRoute}
199 pushRoute={props.pushRoute}
src/bridge/views/SetProxy.js+1−1
@@ -161,7 +161,7 @@ class SetProxy extends React.Component {
161 walletType={props.walletType}
161 walletType={props.walletType}
162 walletHdPath={props.walletHdPath}
162 walletHdPath={props.walletHdPath}
163 networkType={props.networkType}
163 networkType={props.networkType}
164− setTxnHashCursor={props.setTxnHashCursor}
164+ onSent={props.setTxnHashCursor}
165 setTxnConfirmations={props.setTxnConfirmations}
165 setTxnConfirmations={props.setTxnConfirmations}
166 popRoute={props.popRoute}
166 popRoute={props.popRoute}
167 pushRoute={props.pushRoute}
167 pushRoute={props.pushRoute}
src/bridge/views/Transfer.js+1−1
@@ -131,7 +131,7 @@ class Transfer extends React.Component {
131 walletType={props.walletType}
131 walletType={props.walletType}
132 walletHdPath={props.walletHdPath}
132 walletHdPath={props.walletHdPath}
133 networkType={props.networkType}
133 networkType={props.networkType}
134− setTxnHashCursor={props.setTxnHashCursor}
134+ onSent={props.setTxnHashCursor}
135 setTxnConfirmations={props.setTxnConfirmations}
135 setTxnConfirmations={props.setTxnConfirmations}
136 popRoute={props.popRoute}
136 popRoute={props.popRoute}
137 pushRoute={props.pushRoute}
137 pushRoute={props.pushRoute}