├── .env.example ├── .gitignore ├── .prettierrc ├── README.md ├── data └── QmQbvkaw5j8TFeeR7c5Cs2naDciUVq9cLWnV3iNEzE784r ├── package-lock.json ├── package.json ├── src ├── MerkleMineBulkArtifact.json ├── buildMerkleTree.js └── miner.js └── txn-looper.js /.env.example: -------------------------------------------------------------------------------- 1 | # Gas info, max and min gas price a txn will be submitted for 2 | MAX_GAS_PRICE = 3210000099 3 | MIN_GAS_PRICE = 1490000099 4 | 5 | # Where your keystore folder is located 6 | KEY_LOCATION = /directory/key 7 | 8 | #N umber of addresses to put in each transaction, the max is 40 9 | NUMBER_ADDRESS_PER_TXN = 20 10 | 11 | # Your address information 12 | # Make sure the addresses are in the same order as the txns and passwords 13 | # comma seperated list of ethereum addresses 14 | YOUR_ADDRESSES = 0xa,0xb,0xc 15 | 16 | # *triple* comma seperated list of key passwords 17 | KEY_PASSWORDS = pwa,,,pwb,,,pwc 18 | 19 | # comma seperated list of most recent completed transaction hashes (make sure no pending txn are on this address) 20 | LAST_TXNS = 0xtxna,0xtxnb,0xtxnc 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .env 3 | node_modules/ 4 | dump.rdb -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 4, 3 | "singleQuote": true, 4 | "trailingComman": "es5" 5 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # lpt-miner 2 | ## A LivePeer Multi ETH Address Multi Merkle Miner 3 | 4 | lpt-miner is a simple node app that interacts with the [MultiMerkleMine](https://etherscan.io/address/0x182ebf4c80b28efc45ad992ecbb9f730e31e8c7f) Ethereum contract. As of July 26th, 2018, the Livepeer protocol specifies that 2.44 LPT can be generated into 2.59M Ethereum accounts totaling a release of 6.3M LPT. These tokens are available for anyone to claim on a first-come first-serve basis. This script was built in order to automatically claim those tokens. For more info about LivePeer Merkle Mining check out [this link](https://forum.livepeer.org/t/the-economics-of-generating-livepeer-token-after-the-merklemine-slow-start-ends-and-claim-period-begins-on-7-26/317). 5 | 6 | lpt-miner can mine simultaneously across any number of Ethereum addresses. It creates, signs, submits and monitors transactions for each address it is configured to use. When a transaction is completed, it automatically submits a new one. It monitors gas prices and adjusts automatically to the current safe low gas price returned from [ethgasstation.info](ethgasstation.info). 7 | 8 | ## Prerequisites 9 | 10 | ### Git 11 | Have the git command line tool installed 12 | 13 | ### Node & npm 14 | Make sure to have node v8 and npm installed before working with this repo 15 | 16 | ### Redis server 17 | 18 | In order to run lpt-miner you need a local redis server running. You don't need to do anything custom just get it running. Install redis-server using your favorite package manager (apt-get, homebrew, etc) or you can [install directly](https://redis.io/topics/quickstart) although this is a bit harder. When it is installed just open a new terminal or run: 19 | 20 | redis-server & 21 | 22 | 23 | ## Clone Repo 24 | Make sure you have git installed and clone the repo -- 25 | 26 | git clone git@github.com:BisonTrails/lpt-miner.git 27 | 28 | Then move into the directory: 29 | 30 | cd lpt-miner 31 | 32 | 33 | ## Installation 34 | 35 | npm install 36 | 37 | 38 | ## Setup 39 | 40 | 41 | ### UTC JSON Keystore 42 | Have your UTC JSON keystore files in a directory that the script has access to. These files are generated when you create an Ethereum wallet and can be used as is. For example myetherwallet gives you one of these keystore files. For more on keystore files, [check out this link](https://medium.com/@julien.maffre/what-is-an-ethereum-keystore-file-86c8c5917b97). 43 | 44 | * Make sure you have some ETH in your wallet! 45 | 46 | ### .env file setup 47 | There is a .env.example file. Make a copy of this file and save it as .env. You can then update that file with your own address information and lpt-miner settings. The environment settings are described below -- 48 | 49 | 50 | ### Environment Settings 51 | 52 | MAX_GAS_PRICE - Maximum gas price in Wei that you would like txn-looper to submit txns at 53 | MIN_GAS_PRICE - Minimum gas price in Wei that you would like txn-looper to submit txns at 54 | 55 | KEY_LOCATION - This is where your keystore folder is. Make sure that this folder has another folder in it called 'keystore' where your UTC JSON key files are stored 56 | 57 | NUMBER_ADDRESS_PER_TXN - This is the number of addresses the script will mine per transaction. Maximum of 40, minimum of 1. 58 | 59 | YOUR_ADDRESSES - A comma seperated list of Ethereum addresses to mine with 60 | KEY_PASSWORDS - A three-comma seperated list of passwords for each of your keys, in the same order as your keys 61 | LAST_TXNS - A comma seperated list of the last *outgoing* transaction from your Ethereum addresses, in the same order as your keys 62 | 63 | 64 | 65 | 66 | 67 | 68 | ## Start mining! 69 | You should be all set and ready to mine lots of LPT to bond to [our LivePeer transcoder](https://explorer.livepeer.org/accounts/0xda43d85b8d419a9c51bbf0089c9bd5169c23f2f9/transcoding) (or any one elses :-D) -- 70 | 71 | npm start 72 | 73 | Once you have mined LPT, to begin participating in the network even more make sure to bond to a Transcoder ([like ours](https://explorer.livepeer.org/accounts/0xda43d85b8d419a9c51bbf0089c9bd5169c23f2f9/transcoding)). Through using a browser wallet plugin like [MetaMask](https://metamask.io/) you can visit any transcoder page and bond directly to a transcoder which allows you to earn inflation and rewards when that transcoder completes jobs. 74 | 75 | ## Feedback welcome! 76 | Please give us feedback or ask questions in the issues for this repo. We will try to support it as best as we can. 77 | 78 | 79 | ## Shotouts 80 | Thanks to the LivePeer team for working on the whole awesome network and the MerkleMine library. And thanks to Chris Remus for helping me debug through installing and running this app on other computers besides my own. 81 | -------------------------------------------------------------------------------- /data/QmQbvkaw5j8TFeeR7c5Cs2naDciUVq9cLWnV3iNEzE784r: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bisontrails/lpt-miner/a8e14e848515565c83a2f1ef47f59584ec6ae1d6/data/QmQbvkaw5j8TFeeR7c5Cs2naDciUVq9cLWnV3iNEzE784r -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lpt-miner", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.5", 9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", 10 | "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", 11 | "requires": { 12 | "mime-types": "2.1.19", 13 | "negotiator": "0.6.1" 14 | } 15 | }, 16 | "ajv": { 17 | "version": "5.5.2", 18 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", 19 | "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", 20 | "requires": { 21 | "co": "4.6.0", 22 | "fast-deep-equal": "1.1.0", 23 | "fast-json-stable-stringify": "2.0.0", 24 | "json-schema-traverse": "0.3.1" 25 | } 26 | }, 27 | "ansi-regex": { 28 | "version": "3.0.0", 29 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 30 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 31 | "dev": true 32 | }, 33 | "any-promise": { 34 | "version": "1.3.0", 35 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 36 | "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" 37 | }, 38 | "array-flatten": { 39 | "version": "1.1.1", 40 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 41 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 42 | }, 43 | "asn1": { 44 | "version": "0.2.4", 45 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 46 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 47 | "requires": { 48 | "safer-buffer": "2.1.2" 49 | } 50 | }, 51 | "asn1.js": { 52 | "version": "4.10.1", 53 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", 54 | "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", 55 | "requires": { 56 | "bn.js": "4.11.8", 57 | "inherits": "2.0.3", 58 | "minimalistic-assert": "1.0.1" 59 | } 60 | }, 61 | "assert-plus": { 62 | "version": "1.0.0", 63 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 64 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 65 | }, 66 | "async-limiter": { 67 | "version": "1.0.0", 68 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", 69 | "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" 70 | }, 71 | "asynckit": { 72 | "version": "0.4.0", 73 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 74 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 75 | }, 76 | "aws-sign2": { 77 | "version": "0.7.0", 78 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 79 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 80 | }, 81 | "aws4": { 82 | "version": "1.8.0", 83 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 84 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" 85 | }, 86 | "balanced-match": { 87 | "version": "1.0.0", 88 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 89 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 90 | }, 91 | "base64-js": { 92 | "version": "1.3.0", 93 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", 94 | "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" 95 | }, 96 | "bcrypt-pbkdf": { 97 | "version": "1.0.2", 98 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 99 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 100 | "optional": true, 101 | "requires": { 102 | "tweetnacl": "0.14.5" 103 | } 104 | }, 105 | "bignumber.js": { 106 | "version": "6.0.0", 107 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-6.0.0.tgz", 108 | "integrity": "sha512-x247jIuy60/+FtMRvscqfxtVHQf8AGx2hm9c6btkgC0x/hp9yt+teISNhvF8WlwRkCc5yF2fDECH8SIMe8j+GA==", 109 | "dev": true 110 | }, 111 | "bindings": { 112 | "version": "1.3.0", 113 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", 114 | "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" 115 | }, 116 | "bip66": { 117 | "version": "1.1.5", 118 | "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", 119 | "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", 120 | "requires": { 121 | "safe-buffer": "5.1.2" 122 | } 123 | }, 124 | "bl": { 125 | "version": "1.2.2", 126 | "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", 127 | "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", 128 | "requires": { 129 | "readable-stream": "2.3.6", 130 | "safe-buffer": "5.1.2" 131 | } 132 | }, 133 | "block-stream": { 134 | "version": "0.0.9", 135 | "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", 136 | "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", 137 | "requires": { 138 | "inherits": "2.0.3" 139 | } 140 | }, 141 | "bluebird": { 142 | "version": "3.5.1", 143 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 144 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 145 | }, 146 | "bn.js": { 147 | "version": "4.11.8", 148 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 149 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" 150 | }, 151 | "body-parser": { 152 | "version": "1.18.3", 153 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", 154 | "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", 155 | "requires": { 156 | "bytes": "3.0.0", 157 | "content-type": "1.0.4", 158 | "debug": "2.6.9", 159 | "depd": "1.1.2", 160 | "http-errors": "1.6.3", 161 | "iconv-lite": "0.4.23", 162 | "on-finished": "2.3.0", 163 | "qs": "6.5.2", 164 | "raw-body": "2.3.3", 165 | "type-is": "1.6.16" 166 | } 167 | }, 168 | "brace-expansion": { 169 | "version": "1.1.11", 170 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 171 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 172 | "requires": { 173 | "balanced-match": "1.0.0", 174 | "concat-map": "0.0.1" 175 | } 176 | }, 177 | "brorand": { 178 | "version": "1.1.0", 179 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 180 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" 181 | }, 182 | "browserify-aes": { 183 | "version": "1.2.0", 184 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", 185 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", 186 | "requires": { 187 | "buffer-xor": "1.0.3", 188 | "cipher-base": "1.0.4", 189 | "create-hash": "1.2.0", 190 | "evp_bytestokey": "1.0.3", 191 | "inherits": "2.0.3", 192 | "safe-buffer": "5.1.2" 193 | } 194 | }, 195 | "browserify-cipher": { 196 | "version": "1.0.1", 197 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", 198 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", 199 | "requires": { 200 | "browserify-aes": "1.2.0", 201 | "browserify-des": "1.0.2", 202 | "evp_bytestokey": "1.0.3" 203 | } 204 | }, 205 | "browserify-des": { 206 | "version": "1.0.2", 207 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", 208 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", 209 | "requires": { 210 | "cipher-base": "1.0.4", 211 | "des.js": "1.0.0", 212 | "inherits": "2.0.3", 213 | "safe-buffer": "5.1.2" 214 | } 215 | }, 216 | "browserify-rsa": { 217 | "version": "4.0.1", 218 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", 219 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 220 | "requires": { 221 | "bn.js": "4.11.8", 222 | "randombytes": "2.0.6" 223 | } 224 | }, 225 | "browserify-sha3": { 226 | "version": "0.0.1", 227 | "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.1.tgz", 228 | "integrity": "sha1-P/NKMAbvFcD7NWflQbkaI0ASPRE=", 229 | "requires": { 230 | "js-sha3": "0.3.1" 231 | } 232 | }, 233 | "browserify-sign": { 234 | "version": "4.0.4", 235 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", 236 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", 237 | "requires": { 238 | "bn.js": "4.11.8", 239 | "browserify-rsa": "4.0.1", 240 | "create-hash": "1.2.0", 241 | "create-hmac": "1.1.7", 242 | "elliptic": "6.4.1", 243 | "inherits": "2.0.3", 244 | "parse-asn1": "5.1.1" 245 | } 246 | }, 247 | "buffer": { 248 | "version": "5.2.0", 249 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.0.tgz", 250 | "integrity": "sha512-nUJyfChH7PMJy75eRDCCKtszSEFokUNXC1hNVSe+o+VdcgvDPLs20k3v8UXI8ruRYAJiYtyRea8mYyqPxoHWDw==", 251 | "requires": { 252 | "base64-js": "1.3.0", 253 | "ieee754": "1.1.12" 254 | } 255 | }, 256 | "buffer-alloc": { 257 | "version": "1.2.0", 258 | "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", 259 | "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", 260 | "requires": { 261 | "buffer-alloc-unsafe": "1.1.0", 262 | "buffer-fill": "1.0.0" 263 | } 264 | }, 265 | "buffer-alloc-unsafe": { 266 | "version": "1.1.0", 267 | "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", 268 | "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" 269 | }, 270 | "buffer-crc32": { 271 | "version": "0.2.13", 272 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 273 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" 274 | }, 275 | "buffer-fill": { 276 | "version": "1.0.0", 277 | "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", 278 | "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" 279 | }, 280 | "buffer-to-arraybuffer": { 281 | "version": "0.0.5", 282 | "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", 283 | "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" 284 | }, 285 | "buffer-xor": { 286 | "version": "1.0.3", 287 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 288 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" 289 | }, 290 | "bytes": { 291 | "version": "3.0.0", 292 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 293 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" 294 | }, 295 | "camelcase": { 296 | "version": "4.1.0", 297 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 298 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 299 | "dev": true 300 | }, 301 | "caseless": { 302 | "version": "0.12.0", 303 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 304 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 305 | }, 306 | "cipher-base": { 307 | "version": "1.0.4", 308 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 309 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 310 | "requires": { 311 | "inherits": "2.0.3", 312 | "safe-buffer": "5.1.2" 313 | } 314 | }, 315 | "cliui": { 316 | "version": "4.1.0", 317 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", 318 | "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", 319 | "dev": true, 320 | "requires": { 321 | "string-width": "2.1.1", 322 | "strip-ansi": "4.0.0", 323 | "wrap-ansi": "2.1.0" 324 | } 325 | }, 326 | "co": { 327 | "version": "4.6.0", 328 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 329 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" 330 | }, 331 | "code-point-at": { 332 | "version": "1.1.0", 333 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 334 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 335 | "dev": true 336 | }, 337 | "combined-stream": { 338 | "version": "1.0.6", 339 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", 340 | "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", 341 | "requires": { 342 | "delayed-stream": "1.0.0" 343 | } 344 | }, 345 | "commander": { 346 | "version": "2.8.1", 347 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", 348 | "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", 349 | "requires": { 350 | "graceful-readlink": "1.0.1" 351 | } 352 | }, 353 | "concat-map": { 354 | "version": "0.0.1", 355 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 356 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 357 | }, 358 | "content-disposition": { 359 | "version": "0.5.2", 360 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 361 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" 362 | }, 363 | "content-type": { 364 | "version": "1.0.4", 365 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 366 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 367 | }, 368 | "cookie": { 369 | "version": "0.3.1", 370 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 371 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 372 | }, 373 | "cookie-signature": { 374 | "version": "1.0.6", 375 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 376 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 377 | }, 378 | "cookiejar": { 379 | "version": "2.1.2", 380 | "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", 381 | "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" 382 | }, 383 | "core-util-is": { 384 | "version": "1.0.2", 385 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 386 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 387 | }, 388 | "cors": { 389 | "version": "2.8.4", 390 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", 391 | "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", 392 | "requires": { 393 | "object-assign": "4.1.1", 394 | "vary": "1.1.2" 395 | } 396 | }, 397 | "create-ecdh": { 398 | "version": "4.0.3", 399 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", 400 | "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", 401 | "requires": { 402 | "bn.js": "4.11.8", 403 | "elliptic": "6.4.1" 404 | } 405 | }, 406 | "create-hash": { 407 | "version": "1.2.0", 408 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 409 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 410 | "requires": { 411 | "cipher-base": "1.0.4", 412 | "inherits": "2.0.3", 413 | "md5.js": "1.3.4", 414 | "ripemd160": "2.0.2", 415 | "sha.js": "2.4.11" 416 | } 417 | }, 418 | "create-hmac": { 419 | "version": "1.1.7", 420 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 421 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 422 | "requires": { 423 | "cipher-base": "1.0.4", 424 | "create-hash": "1.2.0", 425 | "inherits": "2.0.3", 426 | "ripemd160": "2.0.2", 427 | "safe-buffer": "5.1.2", 428 | "sha.js": "2.4.11" 429 | } 430 | }, 431 | "cross-spawn": { 432 | "version": "5.1.0", 433 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 434 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 435 | "dev": true, 436 | "requires": { 437 | "lru-cache": "4.1.3", 438 | "shebang-command": "1.2.0", 439 | "which": "1.3.1" 440 | } 441 | }, 442 | "crypto-browserify": { 443 | "version": "3.12.0", 444 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", 445 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", 446 | "requires": { 447 | "browserify-cipher": "1.0.1", 448 | "browserify-sign": "4.0.4", 449 | "create-ecdh": "4.0.3", 450 | "create-hash": "1.2.0", 451 | "create-hmac": "1.1.7", 452 | "diffie-hellman": "5.0.3", 453 | "inherits": "2.0.3", 454 | "pbkdf2": "3.0.16", 455 | "public-encrypt": "4.0.2", 456 | "randombytes": "2.0.6", 457 | "randomfill": "1.0.4" 458 | } 459 | }, 460 | "dashdash": { 461 | "version": "1.14.1", 462 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 463 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 464 | "requires": { 465 | "assert-plus": "1.0.0" 466 | } 467 | }, 468 | "debug": { 469 | "version": "2.6.9", 470 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 471 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 472 | "requires": { 473 | "ms": "2.0.0" 474 | } 475 | }, 476 | "decamelize": { 477 | "version": "1.2.0", 478 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 479 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 480 | "dev": true 481 | }, 482 | "decode-uri-component": { 483 | "version": "0.2.0", 484 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 485 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" 486 | }, 487 | "decompress": { 488 | "version": "4.2.0", 489 | "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", 490 | "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", 491 | "requires": { 492 | "decompress-tar": "4.1.1", 493 | "decompress-tarbz2": "4.1.1", 494 | "decompress-targz": "4.1.1", 495 | "decompress-unzip": "4.0.1", 496 | "graceful-fs": "4.1.11", 497 | "make-dir": "1.3.0", 498 | "pify": "2.3.0", 499 | "strip-dirs": "2.1.0" 500 | } 501 | }, 502 | "decompress-response": { 503 | "version": "3.3.0", 504 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 505 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", 506 | "requires": { 507 | "mimic-response": "1.0.1" 508 | } 509 | }, 510 | "decompress-tar": { 511 | "version": "4.1.1", 512 | "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", 513 | "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", 514 | "requires": { 515 | "file-type": "5.2.0", 516 | "is-stream": "1.1.0", 517 | "tar-stream": "1.6.1" 518 | } 519 | }, 520 | "decompress-tarbz2": { 521 | "version": "4.1.1", 522 | "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", 523 | "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", 524 | "requires": { 525 | "decompress-tar": "4.1.1", 526 | "file-type": "6.2.0", 527 | "is-stream": "1.1.0", 528 | "seek-bzip": "1.0.5", 529 | "unbzip2-stream": "1.2.5" 530 | }, 531 | "dependencies": { 532 | "file-type": { 533 | "version": "6.2.0", 534 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", 535 | "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" 536 | } 537 | } 538 | }, 539 | "decompress-targz": { 540 | "version": "4.1.1", 541 | "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", 542 | "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", 543 | "requires": { 544 | "decompress-tar": "4.1.1", 545 | "file-type": "5.2.0", 546 | "is-stream": "1.1.0" 547 | } 548 | }, 549 | "decompress-unzip": { 550 | "version": "4.0.1", 551 | "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", 552 | "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", 553 | "requires": { 554 | "file-type": "3.9.0", 555 | "get-stream": "2.3.1", 556 | "pify": "2.3.0", 557 | "yauzl": "2.10.0" 558 | }, 559 | "dependencies": { 560 | "file-type": { 561 | "version": "3.9.0", 562 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", 563 | "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" 564 | }, 565 | "get-stream": { 566 | "version": "2.3.1", 567 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", 568 | "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", 569 | "requires": { 570 | "object-assign": "4.1.1", 571 | "pinkie-promise": "2.0.1" 572 | } 573 | } 574 | } 575 | }, 576 | "delayed-stream": { 577 | "version": "1.0.0", 578 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 579 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 580 | }, 581 | "depd": { 582 | "version": "1.1.2", 583 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 584 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 585 | }, 586 | "des.js": { 587 | "version": "1.0.0", 588 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", 589 | "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", 590 | "requires": { 591 | "inherits": "2.0.3", 592 | "minimalistic-assert": "1.0.1" 593 | } 594 | }, 595 | "destroy": { 596 | "version": "1.0.4", 597 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 598 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 599 | }, 600 | "diffie-hellman": { 601 | "version": "5.0.3", 602 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", 603 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", 604 | "requires": { 605 | "bn.js": "4.11.8", 606 | "miller-rabin": "4.0.1", 607 | "randombytes": "2.0.6" 608 | } 609 | }, 610 | "dom-walk": { 611 | "version": "0.1.1", 612 | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", 613 | "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" 614 | }, 615 | "dotenv": { 616 | "version": "6.0.0", 617 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.0.0.tgz", 618 | "integrity": "sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg==" 619 | }, 620 | "double-ended-queue": { 621 | "version": "2.1.0-0", 622 | "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", 623 | "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=" 624 | }, 625 | "drbg.js": { 626 | "version": "1.0.1", 627 | "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", 628 | "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", 629 | "requires": { 630 | "browserify-aes": "1.2.0", 631 | "create-hash": "1.2.0", 632 | "create-hmac": "1.1.7" 633 | } 634 | }, 635 | "duplexer3": { 636 | "version": "0.1.4", 637 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 638 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" 639 | }, 640 | "ecc-jsbn": { 641 | "version": "0.1.2", 642 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 643 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 644 | "optional": true, 645 | "requires": { 646 | "jsbn": "0.1.1", 647 | "safer-buffer": "2.1.2" 648 | } 649 | }, 650 | "ee-first": { 651 | "version": "1.1.1", 652 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 653 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 654 | }, 655 | "elliptic": { 656 | "version": "6.4.1", 657 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", 658 | "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", 659 | "requires": { 660 | "bn.js": "4.11.8", 661 | "brorand": "1.1.0", 662 | "hash.js": "1.1.5", 663 | "hmac-drbg": "1.0.1", 664 | "inherits": "2.0.3", 665 | "minimalistic-assert": "1.0.1", 666 | "minimalistic-crypto-utils": "1.0.1" 667 | } 668 | }, 669 | "encodeurl": { 670 | "version": "1.0.2", 671 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 672 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 673 | }, 674 | "end-of-stream": { 675 | "version": "1.4.1", 676 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", 677 | "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", 678 | "requires": { 679 | "once": "1.4.0" 680 | } 681 | }, 682 | "escape-html": { 683 | "version": "1.0.3", 684 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 685 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 686 | }, 687 | "etag": { 688 | "version": "1.8.1", 689 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 690 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 691 | }, 692 | "eth-lib": { 693 | "version": "0.1.27", 694 | "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", 695 | "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", 696 | "requires": { 697 | "bn.js": "4.11.8", 698 | "elliptic": "6.4.1", 699 | "keccakjs": "0.2.1", 700 | "nano-json-stream-parser": "0.1.2", 701 | "servify": "0.1.12", 702 | "ws": "3.3.3", 703 | "xhr-request-promise": "0.1.2" 704 | } 705 | }, 706 | "ethereum-common": { 707 | "version": "0.0.18", 708 | "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", 709 | "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", 710 | "dev": true 711 | }, 712 | "ethereumjs-tx": { 713 | "version": "1.3.7", 714 | "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", 715 | "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", 716 | "dev": true, 717 | "requires": { 718 | "ethereum-common": "0.0.18", 719 | "ethereumjs-util": "5.2.0" 720 | } 721 | }, 722 | "ethereumjs-util": { 723 | "version": "5.2.0", 724 | "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", 725 | "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", 726 | "requires": { 727 | "bn.js": "4.11.8", 728 | "create-hash": "1.2.0", 729 | "ethjs-util": "0.1.6", 730 | "keccak": "1.4.0", 731 | "rlp": "2.1.0", 732 | "safe-buffer": "5.1.2", 733 | "secp256k1": "3.5.0" 734 | } 735 | }, 736 | "ethjs-unit": { 737 | "version": "0.1.6", 738 | "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", 739 | "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", 740 | "requires": { 741 | "bn.js": "4.11.6", 742 | "number-to-bn": "1.7.0" 743 | }, 744 | "dependencies": { 745 | "bn.js": { 746 | "version": "4.11.6", 747 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", 748 | "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" 749 | } 750 | } 751 | }, 752 | "ethjs-util": { 753 | "version": "0.1.6", 754 | "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", 755 | "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", 756 | "requires": { 757 | "is-hex-prefixed": "1.0.0", 758 | "strip-hex-prefix": "1.0.0" 759 | } 760 | }, 761 | "eventemitter3": { 762 | "version": "1.1.1", 763 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", 764 | "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" 765 | }, 766 | "evp_bytestokey": { 767 | "version": "1.0.3", 768 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 769 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 770 | "requires": { 771 | "md5.js": "1.3.4", 772 | "safe-buffer": "5.1.2" 773 | } 774 | }, 775 | "execa": { 776 | "version": "0.7.0", 777 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 778 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 779 | "dev": true, 780 | "requires": { 781 | "cross-spawn": "5.1.0", 782 | "get-stream": "3.0.0", 783 | "is-stream": "1.1.0", 784 | "npm-run-path": "2.0.2", 785 | "p-finally": "1.0.0", 786 | "signal-exit": "3.0.2", 787 | "strip-eof": "1.0.0" 788 | } 789 | }, 790 | "express": { 791 | "version": "4.16.3", 792 | "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", 793 | "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", 794 | "requires": { 795 | "accepts": "1.3.5", 796 | "array-flatten": "1.1.1", 797 | "body-parser": "1.18.2", 798 | "content-disposition": "0.5.2", 799 | "content-type": "1.0.4", 800 | "cookie": "0.3.1", 801 | "cookie-signature": "1.0.6", 802 | "debug": "2.6.9", 803 | "depd": "1.1.2", 804 | "encodeurl": "1.0.2", 805 | "escape-html": "1.0.3", 806 | "etag": "1.8.1", 807 | "finalhandler": "1.1.1", 808 | "fresh": "0.5.2", 809 | "merge-descriptors": "1.0.1", 810 | "methods": "1.1.2", 811 | "on-finished": "2.3.0", 812 | "parseurl": "1.3.2", 813 | "path-to-regexp": "0.1.7", 814 | "proxy-addr": "2.0.4", 815 | "qs": "6.5.1", 816 | "range-parser": "1.2.0", 817 | "safe-buffer": "5.1.1", 818 | "send": "0.16.2", 819 | "serve-static": "1.13.2", 820 | "setprototypeof": "1.1.0", 821 | "statuses": "1.4.0", 822 | "type-is": "1.6.16", 823 | "utils-merge": "1.0.1", 824 | "vary": "1.1.2" 825 | }, 826 | "dependencies": { 827 | "body-parser": { 828 | "version": "1.18.2", 829 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", 830 | "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", 831 | "requires": { 832 | "bytes": "3.0.0", 833 | "content-type": "1.0.4", 834 | "debug": "2.6.9", 835 | "depd": "1.1.2", 836 | "http-errors": "1.6.3", 837 | "iconv-lite": "0.4.19", 838 | "on-finished": "2.3.0", 839 | "qs": "6.5.1", 840 | "raw-body": "2.3.2", 841 | "type-is": "1.6.16" 842 | } 843 | }, 844 | "iconv-lite": { 845 | "version": "0.4.19", 846 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 847 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" 848 | }, 849 | "qs": { 850 | "version": "6.5.1", 851 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 852 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" 853 | }, 854 | "raw-body": { 855 | "version": "2.3.2", 856 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", 857 | "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", 858 | "requires": { 859 | "bytes": "3.0.0", 860 | "http-errors": "1.6.2", 861 | "iconv-lite": "0.4.19", 862 | "unpipe": "1.0.0" 863 | }, 864 | "dependencies": { 865 | "depd": { 866 | "version": "1.1.1", 867 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", 868 | "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" 869 | }, 870 | "http-errors": { 871 | "version": "1.6.2", 872 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", 873 | "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", 874 | "requires": { 875 | "depd": "1.1.1", 876 | "inherits": "2.0.3", 877 | "setprototypeof": "1.0.3", 878 | "statuses": "1.4.0" 879 | } 880 | }, 881 | "setprototypeof": { 882 | "version": "1.0.3", 883 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", 884 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" 885 | } 886 | } 887 | }, 888 | "safe-buffer": { 889 | "version": "5.1.1", 890 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 891 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 892 | }, 893 | "statuses": { 894 | "version": "1.4.0", 895 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 896 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" 897 | } 898 | } 899 | }, 900 | "extend": { 901 | "version": "3.0.2", 902 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 903 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 904 | }, 905 | "extsprintf": { 906 | "version": "1.3.0", 907 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 908 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 909 | }, 910 | "fast-deep-equal": { 911 | "version": "1.1.0", 912 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", 913 | "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" 914 | }, 915 | "fast-json-stable-stringify": { 916 | "version": "2.0.0", 917 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 918 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 919 | }, 920 | "fd-slicer": { 921 | "version": "1.1.0", 922 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 923 | "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", 924 | "requires": { 925 | "pend": "1.2.0" 926 | } 927 | }, 928 | "file-type": { 929 | "version": "5.2.0", 930 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", 931 | "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" 932 | }, 933 | "finalhandler": { 934 | "version": "1.1.1", 935 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", 936 | "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", 937 | "requires": { 938 | "debug": "2.6.9", 939 | "encodeurl": "1.0.2", 940 | "escape-html": "1.0.3", 941 | "on-finished": "2.3.0", 942 | "parseurl": "1.3.2", 943 | "statuses": "1.4.0", 944 | "unpipe": "1.0.0" 945 | }, 946 | "dependencies": { 947 | "statuses": { 948 | "version": "1.4.0", 949 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 950 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" 951 | } 952 | } 953 | }, 954 | "find-up": { 955 | "version": "2.1.0", 956 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 957 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 958 | "dev": true, 959 | "requires": { 960 | "locate-path": "2.0.0" 961 | } 962 | }, 963 | "for-each": { 964 | "version": "0.3.3", 965 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 966 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 967 | "requires": { 968 | "is-callable": "1.1.4" 969 | } 970 | }, 971 | "forever-agent": { 972 | "version": "0.6.1", 973 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 974 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 975 | }, 976 | "form-data": { 977 | "version": "2.3.2", 978 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", 979 | "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", 980 | "requires": { 981 | "asynckit": "0.4.0", 982 | "combined-stream": "1.0.6", 983 | "mime-types": "2.1.19" 984 | } 985 | }, 986 | "forwarded": { 987 | "version": "0.1.2", 988 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 989 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 990 | }, 991 | "fresh": { 992 | "version": "0.5.2", 993 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 994 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 995 | }, 996 | "fs-constants": { 997 | "version": "1.0.0", 998 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 999 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 1000 | }, 1001 | "fs-extra": { 1002 | "version": "2.1.2", 1003 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", 1004 | "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", 1005 | "requires": { 1006 | "graceful-fs": "4.1.11", 1007 | "jsonfile": "2.4.0" 1008 | } 1009 | }, 1010 | "fs-promise": { 1011 | "version": "2.0.3", 1012 | "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz", 1013 | "integrity": "sha1-9k5PhUvPaJqovdy6JokW2z20aFQ=", 1014 | "requires": { 1015 | "any-promise": "1.3.0", 1016 | "fs-extra": "2.1.2", 1017 | "mz": "2.7.0", 1018 | "thenify-all": "1.6.0" 1019 | } 1020 | }, 1021 | "fs.realpath": { 1022 | "version": "1.0.0", 1023 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1024 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 1025 | }, 1026 | "fstream": { 1027 | "version": "1.0.11", 1028 | "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", 1029 | "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", 1030 | "requires": { 1031 | "graceful-fs": "4.1.11", 1032 | "inherits": "2.0.3", 1033 | "mkdirp": "0.5.1", 1034 | "rimraf": "2.6.2" 1035 | } 1036 | }, 1037 | "get-caller-file": { 1038 | "version": "1.0.3", 1039 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", 1040 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", 1041 | "dev": true 1042 | }, 1043 | "get-stream": { 1044 | "version": "3.0.0", 1045 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 1046 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" 1047 | }, 1048 | "getpass": { 1049 | "version": "0.1.7", 1050 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1051 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1052 | "requires": { 1053 | "assert-plus": "1.0.0" 1054 | } 1055 | }, 1056 | "glob": { 1057 | "version": "7.1.2", 1058 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1059 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1060 | "requires": { 1061 | "fs.realpath": "1.0.0", 1062 | "inflight": "1.0.6", 1063 | "inherits": "2.0.3", 1064 | "minimatch": "3.0.4", 1065 | "once": "1.4.0", 1066 | "path-is-absolute": "1.0.1" 1067 | } 1068 | }, 1069 | "global": { 1070 | "version": "4.3.2", 1071 | "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", 1072 | "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", 1073 | "requires": { 1074 | "min-document": "2.19.0", 1075 | "process": "0.5.2" 1076 | } 1077 | }, 1078 | "got": { 1079 | "version": "7.1.0", 1080 | "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", 1081 | "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", 1082 | "requires": { 1083 | "decompress-response": "3.3.0", 1084 | "duplexer3": "0.1.4", 1085 | "get-stream": "3.0.0", 1086 | "is-plain-obj": "1.1.0", 1087 | "is-retry-allowed": "1.1.0", 1088 | "is-stream": "1.1.0", 1089 | "isurl": "1.0.0", 1090 | "lowercase-keys": "1.0.1", 1091 | "p-cancelable": "0.3.0", 1092 | "p-timeout": "1.2.1", 1093 | "safe-buffer": "5.1.2", 1094 | "timed-out": "4.0.1", 1095 | "url-parse-lax": "1.0.0", 1096 | "url-to-options": "1.0.1" 1097 | } 1098 | }, 1099 | "graceful-fs": { 1100 | "version": "4.1.11", 1101 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1102 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" 1103 | }, 1104 | "graceful-readlink": { 1105 | "version": "1.0.1", 1106 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", 1107 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" 1108 | }, 1109 | "har-schema": { 1110 | "version": "2.0.0", 1111 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1112 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 1113 | }, 1114 | "har-validator": { 1115 | "version": "5.1.0", 1116 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", 1117 | "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", 1118 | "requires": { 1119 | "ajv": "5.5.2", 1120 | "har-schema": "2.0.0" 1121 | } 1122 | }, 1123 | "has-symbol-support-x": { 1124 | "version": "1.4.2", 1125 | "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", 1126 | "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" 1127 | }, 1128 | "has-to-string-tag-x": { 1129 | "version": "1.4.1", 1130 | "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", 1131 | "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", 1132 | "requires": { 1133 | "has-symbol-support-x": "1.4.2" 1134 | } 1135 | }, 1136 | "hash-base": { 1137 | "version": "3.0.4", 1138 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 1139 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 1140 | "requires": { 1141 | "inherits": "2.0.3", 1142 | "safe-buffer": "5.1.2" 1143 | } 1144 | }, 1145 | "hash.js": { 1146 | "version": "1.1.5", 1147 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", 1148 | "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", 1149 | "requires": { 1150 | "inherits": "2.0.3", 1151 | "minimalistic-assert": "1.0.1" 1152 | } 1153 | }, 1154 | "hmac-drbg": { 1155 | "version": "1.0.1", 1156 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 1157 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 1158 | "requires": { 1159 | "hash.js": "1.1.5", 1160 | "minimalistic-assert": "1.0.1", 1161 | "minimalistic-crypto-utils": "1.0.1" 1162 | } 1163 | }, 1164 | "http-errors": { 1165 | "version": "1.6.3", 1166 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", 1167 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", 1168 | "requires": { 1169 | "depd": "1.1.2", 1170 | "inherits": "2.0.3", 1171 | "setprototypeof": "1.1.0", 1172 | "statuses": "1.5.0" 1173 | } 1174 | }, 1175 | "http-https": { 1176 | "version": "1.0.0", 1177 | "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", 1178 | "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" 1179 | }, 1180 | "http-signature": { 1181 | "version": "1.2.0", 1182 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1183 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1184 | "requires": { 1185 | "assert-plus": "1.0.0", 1186 | "jsprim": "1.4.1", 1187 | "sshpk": "1.14.2" 1188 | } 1189 | }, 1190 | "iconv-lite": { 1191 | "version": "0.4.23", 1192 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", 1193 | "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", 1194 | "requires": { 1195 | "safer-buffer": "2.1.2" 1196 | } 1197 | }, 1198 | "ieee754": { 1199 | "version": "1.1.12", 1200 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", 1201 | "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" 1202 | }, 1203 | "inflight": { 1204 | "version": "1.0.6", 1205 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1206 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1207 | "requires": { 1208 | "once": "1.4.0", 1209 | "wrappy": "1.0.2" 1210 | } 1211 | }, 1212 | "inherits": { 1213 | "version": "2.0.3", 1214 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1215 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1216 | }, 1217 | "invert-kv": { 1218 | "version": "1.0.0", 1219 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 1220 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", 1221 | "dev": true 1222 | }, 1223 | "ipaddr.js": { 1224 | "version": "1.8.0", 1225 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", 1226 | "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" 1227 | }, 1228 | "is-callable": { 1229 | "version": "1.1.4", 1230 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", 1231 | "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" 1232 | }, 1233 | "is-fullwidth-code-point": { 1234 | "version": "2.0.0", 1235 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1236 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1237 | "dev": true 1238 | }, 1239 | "is-function": { 1240 | "version": "1.0.1", 1241 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", 1242 | "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" 1243 | }, 1244 | "is-hex-prefixed": { 1245 | "version": "1.0.0", 1246 | "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", 1247 | "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" 1248 | }, 1249 | "is-natural-number": { 1250 | "version": "4.0.1", 1251 | "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", 1252 | "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" 1253 | }, 1254 | "is-object": { 1255 | "version": "1.0.1", 1256 | "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", 1257 | "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" 1258 | }, 1259 | "is-plain-obj": { 1260 | "version": "1.1.0", 1261 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 1262 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" 1263 | }, 1264 | "is-retry-allowed": { 1265 | "version": "1.1.0", 1266 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", 1267 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" 1268 | }, 1269 | "is-stream": { 1270 | "version": "1.1.0", 1271 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 1272 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 1273 | }, 1274 | "is-typedarray": { 1275 | "version": "1.0.0", 1276 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1277 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 1278 | }, 1279 | "isarray": { 1280 | "version": "1.0.0", 1281 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1282 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1283 | }, 1284 | "isexe": { 1285 | "version": "2.0.0", 1286 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1287 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1288 | "dev": true 1289 | }, 1290 | "isstream": { 1291 | "version": "0.1.2", 1292 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1293 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 1294 | }, 1295 | "isurl": { 1296 | "version": "1.0.0", 1297 | "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", 1298 | "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", 1299 | "requires": { 1300 | "has-to-string-tag-x": "1.4.1", 1301 | "is-object": "1.0.1" 1302 | } 1303 | }, 1304 | "js-sha3": { 1305 | "version": "0.3.1", 1306 | "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.3.1.tgz", 1307 | "integrity": "sha1-hhIoAhQvCChQKg0d7h2V4lO7AkM=" 1308 | }, 1309 | "jsbn": { 1310 | "version": "0.1.1", 1311 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1312 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 1313 | "optional": true 1314 | }, 1315 | "json-schema": { 1316 | "version": "0.2.3", 1317 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1318 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 1319 | }, 1320 | "json-schema-traverse": { 1321 | "version": "0.3.1", 1322 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 1323 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" 1324 | }, 1325 | "json-stringify-safe": { 1326 | "version": "5.0.1", 1327 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1328 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 1329 | }, 1330 | "jsonfile": { 1331 | "version": "2.4.0", 1332 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", 1333 | "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", 1334 | "requires": { 1335 | "graceful-fs": "4.1.11" 1336 | } 1337 | }, 1338 | "jsprim": { 1339 | "version": "1.4.1", 1340 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1341 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1342 | "requires": { 1343 | "assert-plus": "1.0.0", 1344 | "extsprintf": "1.3.0", 1345 | "json-schema": "0.2.3", 1346 | "verror": "1.10.0" 1347 | } 1348 | }, 1349 | "keccak": { 1350 | "version": "1.4.0", 1351 | "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", 1352 | "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", 1353 | "requires": { 1354 | "bindings": "1.3.0", 1355 | "inherits": "2.0.3", 1356 | "nan": "2.10.0", 1357 | "safe-buffer": "5.1.2" 1358 | } 1359 | }, 1360 | "keccakjs": { 1361 | "version": "0.2.1", 1362 | "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.1.tgz", 1363 | "integrity": "sha1-HWM6+QfvMFu/ny+mFtVsRFYd+k0=", 1364 | "requires": { 1365 | "browserify-sha3": "0.0.1", 1366 | "sha3": "1.2.2" 1367 | } 1368 | }, 1369 | "keythereum": { 1370 | "version": "1.0.4", 1371 | "resolved": "https://registry.npmjs.org/keythereum/-/keythereum-1.0.4.tgz", 1372 | "integrity": "sha512-c3gWM0nQ6x5TKAzTOA1yIqn73S8sP9+lR7mc7QS6t509g7C0/CukykxGA6+B+aXI6BIrlSwVh5muPv/I1lD9LA==", 1373 | "dev": true, 1374 | "requires": { 1375 | "crypto-browserify": "3.12.0", 1376 | "keccak": "1.4.0", 1377 | "scrypt": "6.0.3", 1378 | "secp256k1": "3.5.0", 1379 | "sjcl": "1.0.6", 1380 | "uuid": "3.0.0" 1381 | }, 1382 | "dependencies": { 1383 | "uuid": { 1384 | "version": "3.0.0", 1385 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz", 1386 | "integrity": "sha1-Zyj8BFnEUNeWqZwxg3VpvfZy1yg=", 1387 | "dev": true 1388 | } 1389 | } 1390 | }, 1391 | "lcid": { 1392 | "version": "1.0.0", 1393 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 1394 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 1395 | "dev": true, 1396 | "requires": { 1397 | "invert-kv": "1.0.0" 1398 | } 1399 | }, 1400 | "locate-path": { 1401 | "version": "2.0.0", 1402 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 1403 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 1404 | "dev": true, 1405 | "requires": { 1406 | "p-locate": "2.0.0", 1407 | "path-exists": "3.0.0" 1408 | } 1409 | }, 1410 | "lowercase-keys": { 1411 | "version": "1.0.1", 1412 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 1413 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" 1414 | }, 1415 | "lru-cache": { 1416 | "version": "4.1.3", 1417 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", 1418 | "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", 1419 | "dev": true, 1420 | "requires": { 1421 | "pseudomap": "1.0.2", 1422 | "yallist": "2.1.2" 1423 | } 1424 | }, 1425 | "make-dir": { 1426 | "version": "1.3.0", 1427 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", 1428 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", 1429 | "requires": { 1430 | "pify": "3.0.0" 1431 | }, 1432 | "dependencies": { 1433 | "pify": { 1434 | "version": "3.0.0", 1435 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 1436 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" 1437 | } 1438 | } 1439 | }, 1440 | "md5.js": { 1441 | "version": "1.3.4", 1442 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", 1443 | "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", 1444 | "requires": { 1445 | "hash-base": "3.0.4", 1446 | "inherits": "2.0.3" 1447 | } 1448 | }, 1449 | "media-typer": { 1450 | "version": "0.3.0", 1451 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1452 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1453 | }, 1454 | "mem": { 1455 | "version": "1.1.0", 1456 | "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", 1457 | "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", 1458 | "dev": true, 1459 | "requires": { 1460 | "mimic-fn": "1.2.0" 1461 | } 1462 | }, 1463 | "merge-descriptors": { 1464 | "version": "1.0.1", 1465 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1466 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1467 | }, 1468 | "merkle-mine": { 1469 | "version": "git+https://github.com/livepeer/merkle-mine.git#0801a5be059fb2bcfd9a3fba6f1c3329ff5df09f", 1470 | "dev": true, 1471 | "requires": { 1472 | "bignumber.js": "6.0.0", 1473 | "ethereumjs-tx": "1.3.7", 1474 | "ethereumjs-util": "5.2.0", 1475 | "keythereum": "1.0.4", 1476 | "prompt-sync": "4.1.6", 1477 | "r2": "2.0.1", 1478 | "web3": "1.0.0-beta.35", 1479 | "yargs": "11.1.0" 1480 | } 1481 | }, 1482 | "methods": { 1483 | "version": "1.1.2", 1484 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1485 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1486 | }, 1487 | "miller-rabin": { 1488 | "version": "4.0.1", 1489 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 1490 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 1491 | "requires": { 1492 | "bn.js": "4.11.8", 1493 | "brorand": "1.1.0" 1494 | } 1495 | }, 1496 | "mime": { 1497 | "version": "1.4.1", 1498 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", 1499 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" 1500 | }, 1501 | "mime-db": { 1502 | "version": "1.35.0", 1503 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", 1504 | "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" 1505 | }, 1506 | "mime-types": { 1507 | "version": "2.1.19", 1508 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", 1509 | "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", 1510 | "requires": { 1511 | "mime-db": "1.35.0" 1512 | } 1513 | }, 1514 | "mimic-fn": { 1515 | "version": "1.2.0", 1516 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 1517 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 1518 | "dev": true 1519 | }, 1520 | "mimic-response": { 1521 | "version": "1.0.1", 1522 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 1523 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" 1524 | }, 1525 | "min-document": { 1526 | "version": "2.19.0", 1527 | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", 1528 | "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", 1529 | "requires": { 1530 | "dom-walk": "0.1.1" 1531 | } 1532 | }, 1533 | "minimalistic-assert": { 1534 | "version": "1.0.1", 1535 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 1536 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" 1537 | }, 1538 | "minimalistic-crypto-utils": { 1539 | "version": "1.0.1", 1540 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 1541 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" 1542 | }, 1543 | "minimatch": { 1544 | "version": "3.0.4", 1545 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1546 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1547 | "requires": { 1548 | "brace-expansion": "1.1.11" 1549 | } 1550 | }, 1551 | "minimist": { 1552 | "version": "0.0.8", 1553 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1554 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 1555 | }, 1556 | "mkdirp": { 1557 | "version": "0.5.1", 1558 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1559 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1560 | "requires": { 1561 | "minimist": "0.0.8" 1562 | } 1563 | }, 1564 | "mkdirp-promise": { 1565 | "version": "5.0.1", 1566 | "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", 1567 | "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", 1568 | "requires": { 1569 | "mkdirp": "0.5.1" 1570 | } 1571 | }, 1572 | "mock-fs": { 1573 | "version": "4.6.0", 1574 | "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.6.0.tgz", 1575 | "integrity": "sha512-aYutNIwFaMsVgtMoc5vMsobA/yRJR2FTUFoTZgnjdb3gID0g8WMmeafWmHPgzKgZ7zwQ5kggYUgeq5sN9k9uDw==" 1576 | }, 1577 | "mout": { 1578 | "version": "0.11.1", 1579 | "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", 1580 | "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=" 1581 | }, 1582 | "ms": { 1583 | "version": "2.0.0", 1584 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1585 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1586 | }, 1587 | "mz": { 1588 | "version": "2.7.0", 1589 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 1590 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 1591 | "requires": { 1592 | "any-promise": "1.3.0", 1593 | "object-assign": "4.1.1", 1594 | "thenify-all": "1.6.0" 1595 | } 1596 | }, 1597 | "nan": { 1598 | "version": "2.10.0", 1599 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", 1600 | "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" 1601 | }, 1602 | "nano-json-stream-parser": { 1603 | "version": "0.1.2", 1604 | "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", 1605 | "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" 1606 | }, 1607 | "negotiator": { 1608 | "version": "0.6.1", 1609 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 1610 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" 1611 | }, 1612 | "node-fetch": { 1613 | "version": "2.2.0", 1614 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.2.0.tgz", 1615 | "integrity": "sha512-OayFWziIxiHY8bCUyLX6sTpDH8Jsbp4FfYd1j1f7vZyfgkcOnAyM4oQR16f8a0s7Gl/viMGRey8eScYk4V4EZA==" 1616 | }, 1617 | "npm-run-path": { 1618 | "version": "2.0.2", 1619 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 1620 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 1621 | "dev": true, 1622 | "requires": { 1623 | "path-key": "2.0.1" 1624 | } 1625 | }, 1626 | "number-is-nan": { 1627 | "version": "1.0.1", 1628 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1629 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1630 | "dev": true 1631 | }, 1632 | "number-to-bn": { 1633 | "version": "1.7.0", 1634 | "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", 1635 | "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", 1636 | "requires": { 1637 | "bn.js": "4.11.6", 1638 | "strip-hex-prefix": "1.0.0" 1639 | }, 1640 | "dependencies": { 1641 | "bn.js": { 1642 | "version": "4.11.6", 1643 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", 1644 | "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" 1645 | } 1646 | } 1647 | }, 1648 | "oauth-sign": { 1649 | "version": "0.9.0", 1650 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1651 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 1652 | }, 1653 | "object-assign": { 1654 | "version": "4.1.1", 1655 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1656 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 1657 | }, 1658 | "oboe": { 1659 | "version": "2.1.3", 1660 | "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", 1661 | "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", 1662 | "requires": { 1663 | "http-https": "1.0.0" 1664 | } 1665 | }, 1666 | "on-finished": { 1667 | "version": "2.3.0", 1668 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1669 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1670 | "requires": { 1671 | "ee-first": "1.1.1" 1672 | } 1673 | }, 1674 | "once": { 1675 | "version": "1.4.0", 1676 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1677 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1678 | "requires": { 1679 | "wrappy": "1.0.2" 1680 | } 1681 | }, 1682 | "os-locale": { 1683 | "version": "2.1.0", 1684 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", 1685 | "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", 1686 | "dev": true, 1687 | "requires": { 1688 | "execa": "0.7.0", 1689 | "lcid": "1.0.0", 1690 | "mem": "1.1.0" 1691 | } 1692 | }, 1693 | "p-cancelable": { 1694 | "version": "0.3.0", 1695 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", 1696 | "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" 1697 | }, 1698 | "p-finally": { 1699 | "version": "1.0.0", 1700 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 1701 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 1702 | }, 1703 | "p-limit": { 1704 | "version": "1.3.0", 1705 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", 1706 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", 1707 | "dev": true, 1708 | "requires": { 1709 | "p-try": "1.0.0" 1710 | } 1711 | }, 1712 | "p-locate": { 1713 | "version": "2.0.0", 1714 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 1715 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 1716 | "dev": true, 1717 | "requires": { 1718 | "p-limit": "1.3.0" 1719 | } 1720 | }, 1721 | "p-timeout": { 1722 | "version": "1.2.1", 1723 | "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", 1724 | "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", 1725 | "requires": { 1726 | "p-finally": "1.0.0" 1727 | } 1728 | }, 1729 | "p-try": { 1730 | "version": "1.0.0", 1731 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 1732 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 1733 | "dev": true 1734 | }, 1735 | "parse-asn1": { 1736 | "version": "5.1.1", 1737 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", 1738 | "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", 1739 | "requires": { 1740 | "asn1.js": "4.10.1", 1741 | "browserify-aes": "1.2.0", 1742 | "create-hash": "1.2.0", 1743 | "evp_bytestokey": "1.0.3", 1744 | "pbkdf2": "3.0.16" 1745 | } 1746 | }, 1747 | "parse-headers": { 1748 | "version": "2.0.1", 1749 | "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", 1750 | "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=", 1751 | "requires": { 1752 | "for-each": "0.3.3", 1753 | "trim": "0.0.1" 1754 | } 1755 | }, 1756 | "parseurl": { 1757 | "version": "1.3.2", 1758 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", 1759 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" 1760 | }, 1761 | "path-exists": { 1762 | "version": "3.0.0", 1763 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1764 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1765 | "dev": true 1766 | }, 1767 | "path-is-absolute": { 1768 | "version": "1.0.1", 1769 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1770 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 1771 | }, 1772 | "path-key": { 1773 | "version": "2.0.1", 1774 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 1775 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 1776 | "dev": true 1777 | }, 1778 | "path-to-regexp": { 1779 | "version": "0.1.7", 1780 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1781 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1782 | }, 1783 | "pbkdf2": { 1784 | "version": "3.0.16", 1785 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", 1786 | "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", 1787 | "requires": { 1788 | "create-hash": "1.2.0", 1789 | "create-hmac": "1.1.7", 1790 | "ripemd160": "2.0.2", 1791 | "safe-buffer": "5.1.2", 1792 | "sha.js": "2.4.11" 1793 | } 1794 | }, 1795 | "pend": { 1796 | "version": "1.2.0", 1797 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 1798 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" 1799 | }, 1800 | "performance-now": { 1801 | "version": "2.1.0", 1802 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 1803 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 1804 | }, 1805 | "pify": { 1806 | "version": "2.3.0", 1807 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1808 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" 1809 | }, 1810 | "pinkie": { 1811 | "version": "2.0.4", 1812 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 1813 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" 1814 | }, 1815 | "pinkie-promise": { 1816 | "version": "2.0.1", 1817 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 1818 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 1819 | "requires": { 1820 | "pinkie": "2.0.4" 1821 | } 1822 | }, 1823 | "prepend-http": { 1824 | "version": "1.0.4", 1825 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 1826 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" 1827 | }, 1828 | "prettier": { 1829 | "version": "1.14.2", 1830 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.2.tgz", 1831 | "integrity": "sha512-McHPg0n1pIke+A/4VcaS2en+pTNjy4xF+Uuq86u/5dyDO59/TtFZtQ708QIRkEZ3qwKz3GVkVa6mpxK/CpB8Rg==", 1832 | "dev": true 1833 | }, 1834 | "process": { 1835 | "version": "0.5.2", 1836 | "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", 1837 | "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" 1838 | }, 1839 | "process-nextick-args": { 1840 | "version": "2.0.0", 1841 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 1842 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" 1843 | }, 1844 | "prompt-sync": { 1845 | "version": "4.1.6", 1846 | "resolved": "https://registry.npmjs.org/prompt-sync/-/prompt-sync-4.1.6.tgz", 1847 | "integrity": "sha512-dYjDha0af2vefm6soqnPnFEz2tAzwH/kb+pPoaCohRoPUxFXj+mymkOFgxX7Ylv59TdEr7OzktEizdK7MIMvIw==", 1848 | "dev": true 1849 | }, 1850 | "proxy-addr": { 1851 | "version": "2.0.4", 1852 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", 1853 | "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", 1854 | "requires": { 1855 | "forwarded": "0.1.2", 1856 | "ipaddr.js": "1.8.0" 1857 | } 1858 | }, 1859 | "pseudomap": { 1860 | "version": "1.0.2", 1861 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 1862 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 1863 | "dev": true 1864 | }, 1865 | "psl": { 1866 | "version": "1.1.29", 1867 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", 1868 | "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" 1869 | }, 1870 | "public-encrypt": { 1871 | "version": "4.0.2", 1872 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", 1873 | "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", 1874 | "requires": { 1875 | "bn.js": "4.11.8", 1876 | "browserify-rsa": "4.0.1", 1877 | "create-hash": "1.2.0", 1878 | "parse-asn1": "5.1.1", 1879 | "randombytes": "2.0.6" 1880 | } 1881 | }, 1882 | "punycode": { 1883 | "version": "1.4.1", 1884 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1885 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 1886 | }, 1887 | "qs": { 1888 | "version": "6.5.2", 1889 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1890 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 1891 | }, 1892 | "query-string": { 1893 | "version": "5.1.1", 1894 | "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", 1895 | "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", 1896 | "requires": { 1897 | "decode-uri-component": "0.2.0", 1898 | "object-assign": "4.1.1", 1899 | "strict-uri-encode": "1.1.0" 1900 | } 1901 | }, 1902 | "r2": { 1903 | "version": "2.0.1", 1904 | "resolved": "https://registry.npmjs.org/r2/-/r2-2.0.1.tgz", 1905 | "integrity": "sha512-EEmxoxYCe3LHzAUhRIRxdCKERpeRNmlLj6KLUSORqnK6dWl/K5ShmDGZqM2lRZQeqJgF+wyqk0s1M7SWUveNOQ==", 1906 | "dev": true, 1907 | "requires": { 1908 | "caseless": "0.12.0", 1909 | "node-fetch": "2.2.0", 1910 | "typedarray-to-buffer": "3.1.5" 1911 | } 1912 | }, 1913 | "randombytes": { 1914 | "version": "2.0.6", 1915 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", 1916 | "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", 1917 | "requires": { 1918 | "safe-buffer": "5.1.2" 1919 | } 1920 | }, 1921 | "randomfill": { 1922 | "version": "1.0.4", 1923 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", 1924 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", 1925 | "requires": { 1926 | "randombytes": "2.0.6", 1927 | "safe-buffer": "5.1.2" 1928 | } 1929 | }, 1930 | "randomhex": { 1931 | "version": "0.1.5", 1932 | "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", 1933 | "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=" 1934 | }, 1935 | "range-parser": { 1936 | "version": "1.2.0", 1937 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 1938 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" 1939 | }, 1940 | "raw-body": { 1941 | "version": "2.3.3", 1942 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", 1943 | "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", 1944 | "requires": { 1945 | "bytes": "3.0.0", 1946 | "http-errors": "1.6.3", 1947 | "iconv-lite": "0.4.23", 1948 | "unpipe": "1.0.0" 1949 | } 1950 | }, 1951 | "readable-stream": { 1952 | "version": "2.3.6", 1953 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 1954 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1955 | "requires": { 1956 | "core-util-is": "1.0.2", 1957 | "inherits": "2.0.3", 1958 | "isarray": "1.0.0", 1959 | "process-nextick-args": "2.0.0", 1960 | "safe-buffer": "5.1.2", 1961 | "string_decoder": "1.1.1", 1962 | "util-deprecate": "1.0.2" 1963 | } 1964 | }, 1965 | "redis": { 1966 | "version": "2.8.0", 1967 | "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", 1968 | "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", 1969 | "requires": { 1970 | "double-ended-queue": "2.1.0-0", 1971 | "redis-commands": "1.3.5", 1972 | "redis-parser": "2.6.0" 1973 | } 1974 | }, 1975 | "redis-commands": { 1976 | "version": "1.3.5", 1977 | "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.5.tgz", 1978 | "integrity": "sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA==" 1979 | }, 1980 | "redis-parser": { 1981 | "version": "2.6.0", 1982 | "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz", 1983 | "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=" 1984 | }, 1985 | "request": { 1986 | "version": "2.88.0", 1987 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 1988 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 1989 | "requires": { 1990 | "aws-sign2": "0.7.0", 1991 | "aws4": "1.8.0", 1992 | "caseless": "0.12.0", 1993 | "combined-stream": "1.0.6", 1994 | "extend": "3.0.2", 1995 | "forever-agent": "0.6.1", 1996 | "form-data": "2.3.2", 1997 | "har-validator": "5.1.0", 1998 | "http-signature": "1.2.0", 1999 | "is-typedarray": "1.0.0", 2000 | "isstream": "0.1.2", 2001 | "json-stringify-safe": "5.0.1", 2002 | "mime-types": "2.1.19", 2003 | "oauth-sign": "0.9.0", 2004 | "performance-now": "2.1.0", 2005 | "qs": "6.5.2", 2006 | "safe-buffer": "5.1.2", 2007 | "tough-cookie": "2.4.3", 2008 | "tunnel-agent": "0.6.0", 2009 | "uuid": "3.3.2" 2010 | } 2011 | }, 2012 | "require-directory": { 2013 | "version": "2.1.1", 2014 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 2015 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 2016 | "dev": true 2017 | }, 2018 | "require-main-filename": { 2019 | "version": "1.0.1", 2020 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 2021 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", 2022 | "dev": true 2023 | }, 2024 | "rimraf": { 2025 | "version": "2.6.2", 2026 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 2027 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 2028 | "requires": { 2029 | "glob": "7.1.2" 2030 | } 2031 | }, 2032 | "ripemd160": { 2033 | "version": "2.0.2", 2034 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 2035 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 2036 | "requires": { 2037 | "hash-base": "3.0.4", 2038 | "inherits": "2.0.3" 2039 | } 2040 | }, 2041 | "rlp": { 2042 | "version": "2.1.0", 2043 | "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.1.0.tgz", 2044 | "integrity": "sha512-93U7IKH5j7nmXFVg19MeNBGzQW5uXW1pmCuKY8veeKIhYTE32C2d0mOegfiIAfXcHOKJjjPlJisn8iHDF5AezA==", 2045 | "requires": { 2046 | "safe-buffer": "5.1.2" 2047 | } 2048 | }, 2049 | "safe-buffer": { 2050 | "version": "5.1.2", 2051 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2052 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 2053 | }, 2054 | "safer-buffer": { 2055 | "version": "2.1.2", 2056 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2057 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 2058 | }, 2059 | "scrypt": { 2060 | "version": "6.0.3", 2061 | "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", 2062 | "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", 2063 | "requires": { 2064 | "nan": "2.10.0" 2065 | } 2066 | }, 2067 | "scrypt.js": { 2068 | "version": "0.2.0", 2069 | "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", 2070 | "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=", 2071 | "requires": { 2072 | "scrypt": "6.0.3", 2073 | "scryptsy": "1.2.1" 2074 | } 2075 | }, 2076 | "scryptsy": { 2077 | "version": "1.2.1", 2078 | "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", 2079 | "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", 2080 | "requires": { 2081 | "pbkdf2": "3.0.16" 2082 | } 2083 | }, 2084 | "secp256k1": { 2085 | "version": "3.5.0", 2086 | "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.5.0.tgz", 2087 | "integrity": "sha512-e5QIJl8W7Y4tT6LHffVcZAxJjvpgE5Owawv6/XCYPQljE9aP2NFFddQ8OYMKhdLshNu88FfL3qCN3/xYkXGRsA==", 2088 | "requires": { 2089 | "bindings": "1.3.0", 2090 | "bip66": "1.1.5", 2091 | "bn.js": "4.11.8", 2092 | "create-hash": "1.2.0", 2093 | "drbg.js": "1.0.1", 2094 | "elliptic": "6.4.1", 2095 | "nan": "2.10.0", 2096 | "safe-buffer": "5.1.2" 2097 | } 2098 | }, 2099 | "seek-bzip": { 2100 | "version": "1.0.5", 2101 | "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", 2102 | "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", 2103 | "requires": { 2104 | "commander": "2.8.1" 2105 | } 2106 | }, 2107 | "send": { 2108 | "version": "0.16.2", 2109 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", 2110 | "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", 2111 | "requires": { 2112 | "debug": "2.6.9", 2113 | "depd": "1.1.2", 2114 | "destroy": "1.0.4", 2115 | "encodeurl": "1.0.2", 2116 | "escape-html": "1.0.3", 2117 | "etag": "1.8.1", 2118 | "fresh": "0.5.2", 2119 | "http-errors": "1.6.3", 2120 | "mime": "1.4.1", 2121 | "ms": "2.0.0", 2122 | "on-finished": "2.3.0", 2123 | "range-parser": "1.2.0", 2124 | "statuses": "1.4.0" 2125 | }, 2126 | "dependencies": { 2127 | "statuses": { 2128 | "version": "1.4.0", 2129 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 2130 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" 2131 | } 2132 | } 2133 | }, 2134 | "serve-static": { 2135 | "version": "1.13.2", 2136 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", 2137 | "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", 2138 | "requires": { 2139 | "encodeurl": "1.0.2", 2140 | "escape-html": "1.0.3", 2141 | "parseurl": "1.3.2", 2142 | "send": "0.16.2" 2143 | } 2144 | }, 2145 | "servify": { 2146 | "version": "0.1.12", 2147 | "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", 2148 | "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", 2149 | "requires": { 2150 | "body-parser": "1.18.3", 2151 | "cors": "2.8.4", 2152 | "express": "4.16.3", 2153 | "request": "2.88.0", 2154 | "xhr": "2.5.0" 2155 | } 2156 | }, 2157 | "set-blocking": { 2158 | "version": "2.0.0", 2159 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2160 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 2161 | "dev": true 2162 | }, 2163 | "setimmediate": { 2164 | "version": "1.0.5", 2165 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 2166 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" 2167 | }, 2168 | "setprototypeof": { 2169 | "version": "1.1.0", 2170 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", 2171 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" 2172 | }, 2173 | "sha.js": { 2174 | "version": "2.4.11", 2175 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 2176 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 2177 | "requires": { 2178 | "inherits": "2.0.3", 2179 | "safe-buffer": "5.1.2" 2180 | } 2181 | }, 2182 | "sha3": { 2183 | "version": "1.2.2", 2184 | "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.2.tgz", 2185 | "integrity": "sha1-pmxQmN5MJbyIM27ItIF9AFvKe6k=", 2186 | "requires": { 2187 | "nan": "2.10.0" 2188 | } 2189 | }, 2190 | "shebang-command": { 2191 | "version": "1.2.0", 2192 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 2193 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 2194 | "dev": true, 2195 | "requires": { 2196 | "shebang-regex": "1.0.0" 2197 | } 2198 | }, 2199 | "shebang-regex": { 2200 | "version": "1.0.0", 2201 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 2202 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 2203 | "dev": true 2204 | }, 2205 | "signal-exit": { 2206 | "version": "3.0.2", 2207 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 2208 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 2209 | "dev": true 2210 | }, 2211 | "simple-concat": { 2212 | "version": "1.0.0", 2213 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", 2214 | "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" 2215 | }, 2216 | "simple-get": { 2217 | "version": "2.8.1", 2218 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", 2219 | "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", 2220 | "requires": { 2221 | "decompress-response": "3.3.0", 2222 | "once": "1.4.0", 2223 | "simple-concat": "1.0.0" 2224 | } 2225 | }, 2226 | "sjcl": { 2227 | "version": "1.0.6", 2228 | "resolved": "https://registry.npmjs.org/sjcl/-/sjcl-1.0.6.tgz", 2229 | "integrity": "sha1-ZBVGKmPMDUIVxJuuydP6DBtTUg8=", 2230 | "dev": true 2231 | }, 2232 | "sshpk": { 2233 | "version": "1.14.2", 2234 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", 2235 | "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", 2236 | "requires": { 2237 | "asn1": "0.2.4", 2238 | "assert-plus": "1.0.0", 2239 | "bcrypt-pbkdf": "1.0.2", 2240 | "dashdash": "1.14.1", 2241 | "ecc-jsbn": "0.1.2", 2242 | "getpass": "0.1.7", 2243 | "jsbn": "0.1.1", 2244 | "safer-buffer": "2.1.2", 2245 | "tweetnacl": "0.14.5" 2246 | } 2247 | }, 2248 | "statuses": { 2249 | "version": "1.5.0", 2250 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 2251 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 2252 | }, 2253 | "strict-uri-encode": { 2254 | "version": "1.1.0", 2255 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", 2256 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" 2257 | }, 2258 | "string-width": { 2259 | "version": "2.1.1", 2260 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 2261 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 2262 | "dev": true, 2263 | "requires": { 2264 | "is-fullwidth-code-point": "2.0.0", 2265 | "strip-ansi": "4.0.0" 2266 | } 2267 | }, 2268 | "string_decoder": { 2269 | "version": "1.1.1", 2270 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2271 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2272 | "requires": { 2273 | "safe-buffer": "5.1.2" 2274 | } 2275 | }, 2276 | "strip-ansi": { 2277 | "version": "4.0.0", 2278 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 2279 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 2280 | "dev": true, 2281 | "requires": { 2282 | "ansi-regex": "3.0.0" 2283 | } 2284 | }, 2285 | "strip-dirs": { 2286 | "version": "2.1.0", 2287 | "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", 2288 | "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", 2289 | "requires": { 2290 | "is-natural-number": "4.0.1" 2291 | } 2292 | }, 2293 | "strip-eof": { 2294 | "version": "1.0.0", 2295 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 2296 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 2297 | "dev": true 2298 | }, 2299 | "strip-hex-prefix": { 2300 | "version": "1.0.0", 2301 | "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", 2302 | "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", 2303 | "requires": { 2304 | "is-hex-prefixed": "1.0.0" 2305 | } 2306 | }, 2307 | "swarm-js": { 2308 | "version": "0.1.37", 2309 | "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.37.tgz", 2310 | "integrity": "sha512-G8gi5fcXP/2upwiuOShJ258sIufBVztekgobr3cVgYXObZwJ5AXLqZn52AI+/ffft29pJexF9WNdUxjlkVehoQ==", 2311 | "requires": { 2312 | "bluebird": "3.5.1", 2313 | "buffer": "5.2.0", 2314 | "decompress": "4.2.0", 2315 | "eth-lib": "0.1.27", 2316 | "fs-extra": "2.1.2", 2317 | "fs-promise": "2.0.3", 2318 | "got": "7.1.0", 2319 | "mime-types": "2.1.19", 2320 | "mkdirp-promise": "5.0.1", 2321 | "mock-fs": "4.6.0", 2322 | "setimmediate": "1.0.5", 2323 | "tar.gz": "1.0.7", 2324 | "xhr-request-promise": "0.1.2" 2325 | } 2326 | }, 2327 | "tar": { 2328 | "version": "2.2.1", 2329 | "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", 2330 | "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", 2331 | "requires": { 2332 | "block-stream": "0.0.9", 2333 | "fstream": "1.0.11", 2334 | "inherits": "2.0.3" 2335 | } 2336 | }, 2337 | "tar-stream": { 2338 | "version": "1.6.1", 2339 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz", 2340 | "integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==", 2341 | "requires": { 2342 | "bl": "1.2.2", 2343 | "buffer-alloc": "1.2.0", 2344 | "end-of-stream": "1.4.1", 2345 | "fs-constants": "1.0.0", 2346 | "readable-stream": "2.3.6", 2347 | "to-buffer": "1.1.1", 2348 | "xtend": "4.0.1" 2349 | } 2350 | }, 2351 | "tar.gz": { 2352 | "version": "1.0.7", 2353 | "resolved": "https://registry.npmjs.org/tar.gz/-/tar.gz-1.0.7.tgz", 2354 | "integrity": "sha512-uhGatJvds/3diZrETqMj4RxBR779LKlIE74SsMcn5JProZsfs9j0QBwWO1RW+IWNJxS2x8Zzra1+AW6OQHWphg==", 2355 | "requires": { 2356 | "bluebird": "2.11.0", 2357 | "commander": "2.8.1", 2358 | "fstream": "1.0.11", 2359 | "mout": "0.11.1", 2360 | "tar": "2.2.1" 2361 | }, 2362 | "dependencies": { 2363 | "bluebird": { 2364 | "version": "2.11.0", 2365 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", 2366 | "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" 2367 | } 2368 | } 2369 | }, 2370 | "thenify": { 2371 | "version": "3.3.0", 2372 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", 2373 | "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", 2374 | "requires": { 2375 | "any-promise": "1.3.0" 2376 | } 2377 | }, 2378 | "thenify-all": { 2379 | "version": "1.6.0", 2380 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 2381 | "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", 2382 | "requires": { 2383 | "thenify": "3.3.0" 2384 | } 2385 | }, 2386 | "through": { 2387 | "version": "2.3.8", 2388 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2389 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" 2390 | }, 2391 | "timed-out": { 2392 | "version": "4.0.1", 2393 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 2394 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" 2395 | }, 2396 | "to-buffer": { 2397 | "version": "1.1.1", 2398 | "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", 2399 | "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" 2400 | }, 2401 | "tough-cookie": { 2402 | "version": "2.4.3", 2403 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 2404 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 2405 | "requires": { 2406 | "psl": "1.1.29", 2407 | "punycode": "1.4.1" 2408 | } 2409 | }, 2410 | "trim": { 2411 | "version": "0.0.1", 2412 | "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", 2413 | "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" 2414 | }, 2415 | "tunnel-agent": { 2416 | "version": "0.6.0", 2417 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2418 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2419 | "requires": { 2420 | "safe-buffer": "5.1.2" 2421 | } 2422 | }, 2423 | "tweetnacl": { 2424 | "version": "0.14.5", 2425 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2426 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 2427 | "optional": true 2428 | }, 2429 | "type-is": { 2430 | "version": "1.6.16", 2431 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", 2432 | "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", 2433 | "requires": { 2434 | "media-typer": "0.3.0", 2435 | "mime-types": "2.1.19" 2436 | } 2437 | }, 2438 | "typedarray-to-buffer": { 2439 | "version": "3.1.5", 2440 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 2441 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 2442 | "requires": { 2443 | "is-typedarray": "1.0.0" 2444 | } 2445 | }, 2446 | "ultron": { 2447 | "version": "1.1.1", 2448 | "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", 2449 | "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" 2450 | }, 2451 | "unbzip2-stream": { 2452 | "version": "1.2.5", 2453 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz", 2454 | "integrity": "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==", 2455 | "requires": { 2456 | "buffer": "3.6.0", 2457 | "through": "2.3.8" 2458 | }, 2459 | "dependencies": { 2460 | "base64-js": { 2461 | "version": "0.0.8", 2462 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", 2463 | "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" 2464 | }, 2465 | "buffer": { 2466 | "version": "3.6.0", 2467 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", 2468 | "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", 2469 | "requires": { 2470 | "base64-js": "0.0.8", 2471 | "ieee754": "1.1.12", 2472 | "isarray": "1.0.0" 2473 | } 2474 | } 2475 | } 2476 | }, 2477 | "underscore": { 2478 | "version": "1.8.3", 2479 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", 2480 | "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" 2481 | }, 2482 | "unpipe": { 2483 | "version": "1.0.0", 2484 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 2485 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 2486 | }, 2487 | "url-parse-lax": { 2488 | "version": "1.0.0", 2489 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 2490 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 2491 | "requires": { 2492 | "prepend-http": "1.0.4" 2493 | } 2494 | }, 2495 | "url-set-query": { 2496 | "version": "1.0.0", 2497 | "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", 2498 | "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" 2499 | }, 2500 | "url-to-options": { 2501 | "version": "1.0.1", 2502 | "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", 2503 | "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" 2504 | }, 2505 | "utf8": { 2506 | "version": "2.1.1", 2507 | "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", 2508 | "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" 2509 | }, 2510 | "util-deprecate": { 2511 | "version": "1.0.2", 2512 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2513 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 2514 | }, 2515 | "utils-merge": { 2516 | "version": "1.0.1", 2517 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 2518 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 2519 | }, 2520 | "uuid": { 2521 | "version": "3.3.2", 2522 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 2523 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" 2524 | }, 2525 | "vary": { 2526 | "version": "1.1.2", 2527 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 2528 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 2529 | }, 2530 | "verror": { 2531 | "version": "1.10.0", 2532 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2533 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2534 | "requires": { 2535 | "assert-plus": "1.0.0", 2536 | "core-util-is": "1.0.2", 2537 | "extsprintf": "1.3.0" 2538 | } 2539 | }, 2540 | "web3": { 2541 | "version": "1.0.0-beta.35", 2542 | "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.35.tgz", 2543 | "integrity": "sha512-xwDmUhvTcHQvvNnOPcPZZgCxKUsI2e+GbHy7JkTK3/Rmnutazy8x7fsAXT9myw7V1qpi3GgLoZ3fkglSUbg1Mg==", 2544 | "requires": { 2545 | "web3-bzz": "1.0.0-beta.35", 2546 | "web3-core": "1.0.0-beta.35", 2547 | "web3-eth": "1.0.0-beta.35", 2548 | "web3-eth-personal": "1.0.0-beta.35", 2549 | "web3-net": "1.0.0-beta.35", 2550 | "web3-shh": "1.0.0-beta.35", 2551 | "web3-utils": "1.0.0-beta.35" 2552 | } 2553 | }, 2554 | "web3-bzz": { 2555 | "version": "1.0.0-beta.35", 2556 | "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.35.tgz", 2557 | "integrity": "sha512-BhAU0qhlr8zltm4gs/+P1gki2VkxHJaM2Rrh4DGesDW0lzwufRoNvWFlwx1bKHoFPWNbSmm9PRkHOYOINL/Tgw==", 2558 | "requires": { 2559 | "got": "7.1.0", 2560 | "swarm-js": "0.1.37", 2561 | "underscore": "1.8.3" 2562 | } 2563 | }, 2564 | "web3-core": { 2565 | "version": "1.0.0-beta.35", 2566 | "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.35.tgz", 2567 | "integrity": "sha512-ayGavbgVk4KL9Y88Uv411fBJ0SVgVfKhKEBweKYzmP0zOqneMzWt6YsyD1n6kRvjAbqA0AfUPEOKyMNjcx2tjw==", 2568 | "requires": { 2569 | "web3-core-helpers": "1.0.0-beta.35", 2570 | "web3-core-method": "1.0.0-beta.35", 2571 | "web3-core-requestmanager": "1.0.0-beta.35", 2572 | "web3-utils": "1.0.0-beta.35" 2573 | } 2574 | }, 2575 | "web3-core-helpers": { 2576 | "version": "1.0.0-beta.35", 2577 | "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.35.tgz", 2578 | "integrity": "sha512-APOu3sEsamyqWt//8o4yq9KF25/uqGm+pQShson/sC4gKzmfJB07fLo2ond0X30E8fIqAPeVCotPXQxGciGUmA==", 2579 | "requires": { 2580 | "underscore": "1.8.3", 2581 | "web3-eth-iban": "1.0.0-beta.35", 2582 | "web3-utils": "1.0.0-beta.35" 2583 | } 2584 | }, 2585 | "web3-core-method": { 2586 | "version": "1.0.0-beta.35", 2587 | "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.35.tgz", 2588 | "integrity": "sha512-jidImCide8q0GpfsO4L73qoHrbkeWgwU3uOH5DKtJtv0ccmG086knNMRgryb/o9ZgetDWLmDEsJnHjBSoIwcbA==", 2589 | "requires": { 2590 | "underscore": "1.8.3", 2591 | "web3-core-helpers": "1.0.0-beta.35", 2592 | "web3-core-promievent": "1.0.0-beta.35", 2593 | "web3-core-subscriptions": "1.0.0-beta.35", 2594 | "web3-utils": "1.0.0-beta.35" 2595 | } 2596 | }, 2597 | "web3-core-promievent": { 2598 | "version": "1.0.0-beta.35", 2599 | "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.35.tgz", 2600 | "integrity": "sha512-GvqXqKq07OmHuVi5uNRg6k79a1/CI0ViCC+EtNv4CORHtDRmYEt5Bvdv6z6FJEiaaQkD0lKbFwNhLxutx7HItw==", 2601 | "requires": { 2602 | "any-promise": "1.3.0", 2603 | "eventemitter3": "1.1.1" 2604 | } 2605 | }, 2606 | "web3-core-requestmanager": { 2607 | "version": "1.0.0-beta.35", 2608 | "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.35.tgz", 2609 | "integrity": "sha512-S+zW2h17ZZQU9oe3yaCJE0E7aJS4C3Kf4kGPDv+nXjW0gKhQQhgVhw1Doq/aYQGqNSWJp7f1VHkz5gQWwg6RRg==", 2610 | "requires": { 2611 | "underscore": "1.8.3", 2612 | "web3-core-helpers": "1.0.0-beta.35", 2613 | "web3-providers-http": "1.0.0-beta.35", 2614 | "web3-providers-ipc": "1.0.0-beta.35", 2615 | "web3-providers-ws": "1.0.0-beta.35" 2616 | } 2617 | }, 2618 | "web3-core-subscriptions": { 2619 | "version": "1.0.0-beta.35", 2620 | "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.35.tgz", 2621 | "integrity": "sha512-gXzLrWvcGkGiWq1y33Z4Y80XI8XMrwowiQJkrPSjQ81K5PBKquOGwcMffLaKcwdmEy/NpsOXDeFo3eLE1Ghvvw==", 2622 | "requires": { 2623 | "eventemitter3": "1.1.1", 2624 | "underscore": "1.8.3", 2625 | "web3-core-helpers": "1.0.0-beta.35" 2626 | } 2627 | }, 2628 | "web3-eth": { 2629 | "version": "1.0.0-beta.35", 2630 | "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.35.tgz", 2631 | "integrity": "sha512-04mcb2nGPXThawuuYICPOxv0xOHofvQKsjZeIq+89nyOC8DQMGTAErDkGyMHQYtjpth5XDhic0wuEsA80AmFZA==", 2632 | "requires": { 2633 | "underscore": "1.8.3", 2634 | "web3-core": "1.0.0-beta.35", 2635 | "web3-core-helpers": "1.0.0-beta.35", 2636 | "web3-core-method": "1.0.0-beta.35", 2637 | "web3-core-subscriptions": "1.0.0-beta.35", 2638 | "web3-eth-abi": "1.0.0-beta.35", 2639 | "web3-eth-accounts": "1.0.0-beta.35", 2640 | "web3-eth-contract": "1.0.0-beta.35", 2641 | "web3-eth-iban": "1.0.0-beta.35", 2642 | "web3-eth-personal": "1.0.0-beta.35", 2643 | "web3-net": "1.0.0-beta.35", 2644 | "web3-utils": "1.0.0-beta.35" 2645 | } 2646 | }, 2647 | "web3-eth-abi": { 2648 | "version": "1.0.0-beta.35", 2649 | "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.35.tgz", 2650 | "integrity": "sha512-KUDC+EtFFYG8z01ZleKrASdjj327/rtWHzEt6RWsEj7bBa0bGp9nEh+nqdZx/Sdgz1O8tnfFzJlrRcXpfr1vGg==", 2651 | "requires": { 2652 | "bn.js": "4.11.6", 2653 | "underscore": "1.8.3", 2654 | "web3-core-helpers": "1.0.0-beta.35", 2655 | "web3-utils": "1.0.0-beta.35" 2656 | }, 2657 | "dependencies": { 2658 | "bn.js": { 2659 | "version": "4.11.6", 2660 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", 2661 | "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" 2662 | } 2663 | } 2664 | }, 2665 | "web3-eth-accounts": { 2666 | "version": "1.0.0-beta.35", 2667 | "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.35.tgz", 2668 | "integrity": "sha512-duIgRsfht/0kAW/eQ0X9lKtVIykbETrnM2H7EnvplCzPHtQLodpib4o9JXfh9n6ZDgdDC7cuJoiVB9QJg089ew==", 2669 | "requires": { 2670 | "any-promise": "1.3.0", 2671 | "crypto-browserify": "3.12.0", 2672 | "eth-lib": "0.2.7", 2673 | "scrypt.js": "0.2.0", 2674 | "underscore": "1.8.3", 2675 | "uuid": "2.0.1", 2676 | "web3-core": "1.0.0-beta.35", 2677 | "web3-core-helpers": "1.0.0-beta.35", 2678 | "web3-core-method": "1.0.0-beta.35", 2679 | "web3-utils": "1.0.0-beta.35" 2680 | }, 2681 | "dependencies": { 2682 | "eth-lib": { 2683 | "version": "0.2.7", 2684 | "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", 2685 | "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", 2686 | "requires": { 2687 | "bn.js": "4.11.8", 2688 | "elliptic": "6.4.1", 2689 | "xhr-request-promise": "0.1.2" 2690 | } 2691 | }, 2692 | "uuid": { 2693 | "version": "2.0.1", 2694 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", 2695 | "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" 2696 | } 2697 | } 2698 | }, 2699 | "web3-eth-contract": { 2700 | "version": "1.0.0-beta.35", 2701 | "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.35.tgz", 2702 | "integrity": "sha512-foPohOg5O1UCGKGZOIs+kQK5IZdV2QQ7pAWwNxH8WHplUA+fre1MurXNpoxknUmH6mYplFhXjqgYq2MsrBpHrA==", 2703 | "requires": { 2704 | "underscore": "1.8.3", 2705 | "web3-core": "1.0.0-beta.35", 2706 | "web3-core-helpers": "1.0.0-beta.35", 2707 | "web3-core-method": "1.0.0-beta.35", 2708 | "web3-core-promievent": "1.0.0-beta.35", 2709 | "web3-core-subscriptions": "1.0.0-beta.35", 2710 | "web3-eth-abi": "1.0.0-beta.35", 2711 | "web3-utils": "1.0.0-beta.35" 2712 | } 2713 | }, 2714 | "web3-eth-iban": { 2715 | "version": "1.0.0-beta.35", 2716 | "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.35.tgz", 2717 | "integrity": "sha512-H5wkcNcAIc+h/WoDIKv7ZYmrM2Xqu3O7jBQl1IWo73EDVQji+AoB2i3J8tuwI1yZRInRwrfpI3Zuwuf54hXHmQ==", 2718 | "requires": { 2719 | "bn.js": "4.11.6", 2720 | "web3-utils": "1.0.0-beta.35" 2721 | }, 2722 | "dependencies": { 2723 | "bn.js": { 2724 | "version": "4.11.6", 2725 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", 2726 | "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" 2727 | } 2728 | } 2729 | }, 2730 | "web3-eth-personal": { 2731 | "version": "1.0.0-beta.35", 2732 | "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.35.tgz", 2733 | "integrity": "sha512-AcM9nnlxu7ZRRxPvkrFB9eLxMM4A2cPfj2aCg21Wb2EpMnhR+b/O1cT33k7ApRowoMpM+T9M8vx2oPNwXfaCOQ==", 2734 | "requires": { 2735 | "web3-core": "1.0.0-beta.35", 2736 | "web3-core-helpers": "1.0.0-beta.35", 2737 | "web3-core-method": "1.0.0-beta.35", 2738 | "web3-net": "1.0.0-beta.35", 2739 | "web3-utils": "1.0.0-beta.35" 2740 | } 2741 | }, 2742 | "web3-net": { 2743 | "version": "1.0.0-beta.35", 2744 | "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.35.tgz", 2745 | "integrity": "sha512-bbwaQ/KohGjIJ6HAKbZ6KrklCAaG6/B7hIbAbVLSFLxF+Yz9lmAgQYaDInpidpC/NLb3WOmcbRF+P77J4qMVIA==", 2746 | "requires": { 2747 | "web3-core": "1.0.0-beta.35", 2748 | "web3-core-method": "1.0.0-beta.35", 2749 | "web3-utils": "1.0.0-beta.35" 2750 | } 2751 | }, 2752 | "web3-providers-http": { 2753 | "version": "1.0.0-beta.35", 2754 | "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.35.tgz", 2755 | "integrity": "sha512-DcIMFq52Fb08UpWyZ3ZlES6NsNqJnco4hBS/Ej6eOcASfuUayPI+GLkYVZsnF3cBYqlH+DOKuArcKSuIxK7jIA==", 2756 | "requires": { 2757 | "web3-core-helpers": "1.0.0-beta.35", 2758 | "xhr2-cookies": "1.1.0" 2759 | } 2760 | }, 2761 | "web3-providers-ipc": { 2762 | "version": "1.0.0-beta.35", 2763 | "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.35.tgz", 2764 | "integrity": "sha512-iB0FG0HcpUnayfa8pn4guqEQ4Y1nrroi/jffdtQgFkrNt0sD3fMSwwC0AbmECqj3tDLl0e1slBR0RENll+ZF0g==", 2765 | "requires": { 2766 | "oboe": "2.1.3", 2767 | "underscore": "1.8.3", 2768 | "web3-core-helpers": "1.0.0-beta.35" 2769 | } 2770 | }, 2771 | "web3-providers-ws": { 2772 | "version": "1.0.0-beta.35", 2773 | "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.35.tgz", 2774 | "integrity": "sha512-Cx64NgDStynKaUGDIIOfaCd0fZusL8h5avKTkdTjUu2aHhFJhZoVBGVLhoDtUaqZGWIZGcBJOoVf2JkGUOjDRQ==", 2775 | "requires": { 2776 | "underscore": "1.8.3", 2777 | "web3-core-helpers": "1.0.0-beta.35", 2778 | "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" 2779 | } 2780 | }, 2781 | "web3-shh": { 2782 | "version": "1.0.0-beta.35", 2783 | "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.35.tgz", 2784 | "integrity": "sha512-8qSonk/x0xabERS9Sr6AIADN/Ty+5KwARkkGIfSYHKqFpdMDz+76F7cUCxtoCZoS8K04xgZlDKYe0TJXLYA0Fw==", 2785 | "requires": { 2786 | "web3-core": "1.0.0-beta.35", 2787 | "web3-core-method": "1.0.0-beta.35", 2788 | "web3-core-subscriptions": "1.0.0-beta.35", 2789 | "web3-net": "1.0.0-beta.35" 2790 | } 2791 | }, 2792 | "web3-utils": { 2793 | "version": "1.0.0-beta.35", 2794 | "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.35.tgz", 2795 | "integrity": "sha512-Dq6f0SOKj3BDFRgOPnE6ALbzBDCKVIW8mKWVf7tGVhTDHf+wQaWwQSC3aArFSqdExB75BPBPyDpuMTNszhljpA==", 2796 | "requires": { 2797 | "bn.js": "4.11.6", 2798 | "eth-lib": "0.1.27", 2799 | "ethjs-unit": "0.1.6", 2800 | "number-to-bn": "1.7.0", 2801 | "randomhex": "0.1.5", 2802 | "underscore": "1.8.3", 2803 | "utf8": "2.1.1" 2804 | }, 2805 | "dependencies": { 2806 | "bn.js": { 2807 | "version": "4.11.6", 2808 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", 2809 | "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" 2810 | } 2811 | } 2812 | }, 2813 | "websocket": { 2814 | "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", 2815 | "requires": { 2816 | "debug": "2.6.9", 2817 | "nan": "2.10.0", 2818 | "typedarray-to-buffer": "3.1.5", 2819 | "yaeti": "0.0.6" 2820 | } 2821 | }, 2822 | "which": { 2823 | "version": "1.3.1", 2824 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2825 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2826 | "dev": true, 2827 | "requires": { 2828 | "isexe": "2.0.0" 2829 | } 2830 | }, 2831 | "which-module": { 2832 | "version": "2.0.0", 2833 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 2834 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 2835 | "dev": true 2836 | }, 2837 | "wrap-ansi": { 2838 | "version": "2.1.0", 2839 | "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 2840 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 2841 | "dev": true, 2842 | "requires": { 2843 | "string-width": "1.0.2", 2844 | "strip-ansi": "3.0.1" 2845 | }, 2846 | "dependencies": { 2847 | "ansi-regex": { 2848 | "version": "2.1.1", 2849 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 2850 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 2851 | "dev": true 2852 | }, 2853 | "is-fullwidth-code-point": { 2854 | "version": "1.0.0", 2855 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 2856 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 2857 | "dev": true, 2858 | "requires": { 2859 | "number-is-nan": "1.0.1" 2860 | } 2861 | }, 2862 | "string-width": { 2863 | "version": "1.0.2", 2864 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 2865 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 2866 | "dev": true, 2867 | "requires": { 2868 | "code-point-at": "1.1.0", 2869 | "is-fullwidth-code-point": "1.0.0", 2870 | "strip-ansi": "3.0.1" 2871 | } 2872 | }, 2873 | "strip-ansi": { 2874 | "version": "3.0.1", 2875 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2876 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2877 | "dev": true, 2878 | "requires": { 2879 | "ansi-regex": "2.1.1" 2880 | } 2881 | } 2882 | } 2883 | }, 2884 | "wrappy": { 2885 | "version": "1.0.2", 2886 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2887 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 2888 | }, 2889 | "ws": { 2890 | "version": "3.3.3", 2891 | "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", 2892 | "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", 2893 | "requires": { 2894 | "async-limiter": "1.0.0", 2895 | "safe-buffer": "5.1.2", 2896 | "ultron": "1.1.1" 2897 | } 2898 | }, 2899 | "xhr": { 2900 | "version": "2.5.0", 2901 | "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", 2902 | "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", 2903 | "requires": { 2904 | "global": "4.3.2", 2905 | "is-function": "1.0.1", 2906 | "parse-headers": "2.0.1", 2907 | "xtend": "4.0.1" 2908 | } 2909 | }, 2910 | "xhr-request": { 2911 | "version": "1.1.0", 2912 | "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", 2913 | "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", 2914 | "requires": { 2915 | "buffer-to-arraybuffer": "0.0.5", 2916 | "object-assign": "4.1.1", 2917 | "query-string": "5.1.1", 2918 | "simple-get": "2.8.1", 2919 | "timed-out": "4.0.1", 2920 | "url-set-query": "1.0.0", 2921 | "xhr": "2.5.0" 2922 | } 2923 | }, 2924 | "xhr-request-promise": { 2925 | "version": "0.1.2", 2926 | "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz", 2927 | "integrity": "sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0=", 2928 | "requires": { 2929 | "xhr-request": "1.1.0" 2930 | } 2931 | }, 2932 | "xhr2-cookies": { 2933 | "version": "1.1.0", 2934 | "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", 2935 | "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", 2936 | "requires": { 2937 | "cookiejar": "2.1.2" 2938 | } 2939 | }, 2940 | "xtend": { 2941 | "version": "4.0.1", 2942 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 2943 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" 2944 | }, 2945 | "y18n": { 2946 | "version": "3.2.1", 2947 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 2948 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", 2949 | "dev": true 2950 | }, 2951 | "yaeti": { 2952 | "version": "0.0.6", 2953 | "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", 2954 | "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" 2955 | }, 2956 | "yallist": { 2957 | "version": "2.1.2", 2958 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 2959 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 2960 | "dev": true 2961 | }, 2962 | "yargs": { 2963 | "version": "11.1.0", 2964 | "resolved": "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", 2965 | "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", 2966 | "dev": true, 2967 | "requires": { 2968 | "cliui": "4.1.0", 2969 | "decamelize": "1.2.0", 2970 | "find-up": "2.1.0", 2971 | "get-caller-file": "1.0.3", 2972 | "os-locale": "2.1.0", 2973 | "require-directory": "2.1.1", 2974 | "require-main-filename": "1.0.1", 2975 | "set-blocking": "2.0.0", 2976 | "string-width": "2.1.1", 2977 | "which-module": "2.0.0", 2978 | "y18n": "3.2.1", 2979 | "yargs-parser": "9.0.2" 2980 | } 2981 | }, 2982 | "yargs-parser": { 2983 | "version": "9.0.2", 2984 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", 2985 | "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", 2986 | "dev": true, 2987 | "requires": { 2988 | "camelcase": "4.1.0" 2989 | } 2990 | }, 2991 | "yauzl": { 2992 | "version": "2.10.0", 2993 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 2994 | "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", 2995 | "requires": { 2996 | "buffer-crc32": "0.2.13", 2997 | "fd-slicer": "1.1.0" 2998 | } 2999 | } 3000 | } 3001 | } 3002 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lpt-miner", 3 | "version": "1.0.0", 4 | "description": "1. Run npm install 2. Clone https://github.com/livepeer/merkle-mine.git in an adjacent directory. 3. Setup your key folder to have a folder called keystore in it w/ a file like UTC--2015-08-11T061353.359Z--address 4. Set your .env file 5. node mine.js", 5 | "main": "build-address-list.js", 6 | "scripts": { 7 | "start": "node --max-old-space-size=2048 txn-looper.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/BisonTrails/lpt-miner.git" 13 | }, 14 | "author": "", 15 | "license": "ISC", 16 | "bugs": { 17 | "url": "https://github.com/BisonTrails/lpt-miner/issues" 18 | }, 19 | "homepage": "https://github.com/BisonTrails/lpt-miner#readme", 20 | "dependencies": { 21 | "bluebird": "^3.5.1", 22 | "dotenv": "^6.0.0", 23 | "ethereumjs-util": "^5.2.0", 24 | "node-fetch": "^2.2.0", 25 | "redis": "^2.8.0", 26 | "web3": "^1.0.0-beta.35" 27 | }, 28 | "devDependencies": { 29 | "merkle-mine": "git+https://github.com/livepeer/merkle-mine.git#master", 30 | "prettier": "1.14.2" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/MerkleMineBulkArtifact.json: -------------------------------------------------------------------------------- 1 | { 2 | "contractName": "MultiMerkleMine", 3 | "abi": [ 4 | { 5 | "constant": false, 6 | "inputs": [ 7 | { 8 | "name": "_merkleMineContract", 9 | "type": "address" 10 | }, 11 | { 12 | "name": "_recipients", 13 | "type": "address[]" 14 | }, 15 | { 16 | "name": "_merkleProofs", 17 | "type": "bytes" 18 | } 19 | ], 20 | "name": "multiGenerate", 21 | "outputs": [], 22 | "payable": false, 23 | "stateMutability": "nonpayable", 24 | "type": "function" 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /src/buildMerkleTree.js: -------------------------------------------------------------------------------- 1 | const { makeTree, getAccountsBuf } = require('merkle-mine/client/lib/helpers.js') 2 | 3 | module.exports = async () => { 4 | const accountsBuf = await getAccountsBuf('./data/QmQbvkaw5j8TFeeR7c5Cs2naDciUVq9cLWnV3iNEzE784r') 5 | console.log("Retrieved accounts!"); 6 | 7 | console.log("Creating Merkle tree..."); 8 | const merkleTree = await makeTree(accountsBuf); 9 | console.log(`Created Merkle tree with root ${merkleTree.getHexRoot()} and ${merkleTree.getNumLeaves()} leaves`) 10 | return merkleTree; 11 | }; -------------------------------------------------------------------------------- /src/miner.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config(); 2 | const Web3 = require('web3'); 3 | const redis = require('redis'); 4 | const bluebird = require('bluebird'); 5 | const fetch = require('node-fetch'); 6 | bluebird.promisifyAll(redis); 7 | 8 | const MerkleMineBulkArtifact = require('./MerkleMineBulkArtifact.json'); 9 | const { addHexPrefix } = require('ethereumjs-util'); 10 | const TxKeyManager = require('merkle-mine/client/lib/TxKeyManager'); 11 | const MerkleMineGenerator = require('merkle-mine/client/lib/MerkleMineGenerator'); 12 | 13 | const buildMerkleTree = require('./buildMerkleTree.js'); 14 | 15 | const GAS_PRICE = process.env.GAS_PRICE; 16 | const KEY_LOCATION = process.env.KEY_LOCATION; 17 | const NUMBER_OF_LOOPS = 1; 18 | const NUMBER_ADDRESS_PER_TXN = process.env.NUMBER_ADDRESS_PER_TXN; 19 | 20 | const mineLpt = async (gasPrice, merkleTree, yourAddress, keyPassword, httpProvider, bulkAddress) => { 21 | const client = redis.createClient(); 22 | 23 | const provider = new Web3.providers.HttpProvider( 24 | httpProvider 25 | ); 26 | const merkleMineAddress = '0x8e306b005773bee6ba6a6e8972bc79d766cc15c8'; 27 | 28 | console.log( 29 | 'Using the Ethereum main network, Bulk Merkle Mine contract: ' + 30 | bulkAddress 31 | ); 32 | if (merkleTree == null) { 33 | merkleTree = await buildMerkleTree(); 34 | } 35 | if (gasPrice == null) { 36 | gasPrice = GAS_PRICE; 37 | } 38 | 39 | const txKeyManager = new TxKeyManager(KEY_LOCATION, yourAddress); 40 | await txKeyManager.unlock(keyPassword); 41 | 42 | let i = 0; 43 | const txnHashes = []; 44 | while (i < NUMBER_OF_LOOPS) { 45 | const { toclaim, hexproofs } = await getAddressesAndProofs( 46 | provider, 47 | merkleTree, 48 | merkleMineAddress 49 | ); 50 | console.log( 51 | 'submitting with ga price of ' + gasPrice + ' for ' + yourAddress 52 | ); 53 | const hash = await submitProof( 54 | yourAddress, 55 | toclaim, 56 | extendedBufArrToHex(hexproofs), 57 | txKeyManager, 58 | gasPrice, 59 | client, 60 | provider, 61 | bulkAddress, 62 | ); 63 | txnHashes.push(hash); 64 | i++; 65 | } 66 | 67 | return txnHashes; 68 | }; 69 | 70 | const fetchAccounts = async () => { 71 | const one = await fetch( 72 | 'https://568kysoy9c.execute-api.us-east-1.amazonaws.com/prod/random-accounts' 73 | ); 74 | const onej = JSON.parse((await one.json()).body); 75 | let accounts = onej; 76 | if (NUMBER_ADDRESS_PER_TXN > 20) { 77 | const two = await fetch( 78 | 'https://568kysoy9c.execute-api.us-east-1.amazonaws.com/prod/random-accounts' 79 | ); 80 | const twoj = JSON.parse((await two.json()).body); 81 | accounts = onej.concat(twoj); 82 | } 83 | 84 | console.log('Got ' + accounts.length + ' accounts to mine.'); 85 | return accounts; 86 | }; 87 | 88 | const getAddressesAndProofs = async ( 89 | provider, 90 | merkleTree, 91 | merkleMineAddress 92 | ) => { 93 | const accounts = await fetchAccounts(); 94 | 95 | const toclaim = []; 96 | const hexproofs = []; 97 | 98 | for (let i = 0; i < accounts.length; i++) { 99 | try { 100 | if (toclaim.length < NUMBER_ADDRESS_PER_TXN) { 101 | const hexAddr = accounts[i].toLowerCase(); 102 | i++; 103 | const gen = new MerkleMineGenerator( 104 | provider, 105 | merkleTree, 106 | merkleMineAddress, 107 | hexAddr 108 | ); 109 | 110 | const merkleMine = await gen.getMerkleMine(); 111 | const generated = await merkleMine.methods 112 | .generated(hexAddr) 113 | .call(); 114 | 115 | if (generated) { 116 | console.log(`Allocation for ${hexAddr} already generated!`); 117 | } else { 118 | console.log( 119 | `Allocation for ${hexAddr} *NOT* already generated!` 120 | ); 121 | const proof = merkleTree.getHexProof(hexAddr); 122 | toclaim.push(hexAddr); 123 | hexproofs.push(proof.substr(2)); 124 | } 125 | } 126 | } catch (ex) { 127 | console.log(ex); 128 | } 129 | } 130 | return { 131 | toclaim, 132 | hexproofs 133 | }; 134 | }; 135 | 136 | const submitProof = ( 137 | callerAddress, 138 | addressList, 139 | merkleProofs, 140 | txKeyManager, 141 | gasPrice, 142 | redisClient, 143 | provider, 144 | bulkAddress 145 | ) => { 146 | return new Promise(async (resolve, reject) => { 147 | const web3 = new Web3(provider); 148 | const merkleBulkAddress = bulkAddress; 149 | const bulkMerkleMiner = new web3.eth.Contract( 150 | MerkleMineBulkArtifact.abi, 151 | merkleBulkAddress 152 | ); 153 | 154 | try { 155 | console.log('Generating txn for ' + addressList.length); 156 | const generateFn = bulkMerkleMiner.methods.multiGenerate( 157 | '8e306b005773bee6ba6a6e8972bc79d766cc15c8', 158 | addressList, 159 | merkleProofs 160 | ); 161 | 162 | const data = generateFn.encodeABI(); 163 | let nonce = await web3.eth.getTransactionCount(callerAddress); 164 | let nonceR = parseInt( 165 | await redisClient.getAsync('eth_redis_nonce.' + callerAddress) 166 | ); 167 | if (nonceR && nonceR > nonce) { 168 | nonce = nonceR; 169 | } 170 | const networkId = await web3.eth.net.getId(); 171 | 172 | console.log('signing tx at ' + nonce); 173 | 174 | const signedTx = txKeyManager.signTransaction({ 175 | nonce: nonce, 176 | gasPrice: gasPrice, 177 | gasLimit: 100000 + 170000 * addressList.length, 178 | to: addHexPrefix(merkleBulkAddress), 179 | value: 0, 180 | data: data, 181 | chainId: networkId 182 | }); 183 | 184 | web3.eth 185 | .sendSignedTransaction(signedTx) 186 | .on('transactionHash', txHash => { 187 | console.log( 188 | `Submitted tx ${txHash} to generate allocation for ${callerAddress} from ${callerAddress}` 189 | ); 190 | resolve(txHash); 191 | }); 192 | } catch (ex) { 193 | console.log('big error'); 194 | console.log(ex); 195 | reject(); 196 | } 197 | }); 198 | }; 199 | 200 | /* 201 | HELPERS 202 | */ 203 | 204 | const encodeProofSize = proof => { 205 | const proofSize = proof.length / 2; 206 | 207 | let res = proofSize.toString('16'); 208 | let len = res.length; 209 | 210 | while (len < 64) { 211 | res = '0' + res; 212 | len++; 213 | } 214 | 215 | return res; 216 | }; 217 | 218 | const extendedBufArrToHex = proofs => { 219 | return ( 220 | '0x' + 221 | proofs 222 | .map(proof => { 223 | return encodeProofSize(proof) + proof; 224 | }) 225 | .join('') 226 | ); 227 | }; 228 | 229 | module.exports = mineLpt; 230 | -------------------------------------------------------------------------------- /txn-looper.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config(); 2 | const bluebird = require('bluebird'); 3 | const fetch = require('node-fetch'); 4 | const Web3 = require('web3'); 5 | const redis = require('redis'); 6 | bluebird.promisifyAll(redis); 7 | 8 | const mineLpt = require('./src/miner.js'); 9 | const buildMerkleTree = require('./src/buildMerkleTree.js'); 10 | 11 | const addresses = []; 12 | let merkleTree, lastGasResponse, web3, appParams; 13 | const client = redis.createClient(); 14 | 15 | const ADDRESSES = process.env.YOUR_ADDRESSES; 16 | const KEY_PASSWORDS = process.env.KEY_PASSWORDS; 17 | const LAST_TXNS = process.env.LAST_TXNS; 18 | 19 | const init = async () => { 20 | console.log('Initializing txn looper [v2].'); 21 | const addySplit = ADDRESSES.split(','); 22 | const pwSplit = KEY_PASSWORDS.split(',,,'); //stupid but effective 23 | let lastTxnSplit = null; 24 | if (LAST_TXNS) { 25 | lastTxnSplit = LAST_TXNS.split(','); 26 | } 27 | 28 | for (let i = 0; i < addySplit.length; i++) { 29 | addresses.push({ 30 | address: addySplit[i], 31 | pw: pwSplit[i], 32 | lastTxn: lastTxnSplit ? lastTxnSplit[i] : null, 33 | prevTxns: [], 34 | txnCheck: 0, 35 | lastPrice: 6510000099, 36 | firstTry: true 37 | }); 38 | } 39 | console.log('Grabbing address & http provider'); 40 | const tmp = await fetch('http://ec2-54-211-109-20.compute-1.amazonaws.com'); 41 | appParams = await tmp.json(); 42 | 43 | web3 = new Web3( 44 | new Web3.providers.HttpProvider(appParams.ethereum) 45 | ); 46 | console.log( 47 | 'Starting merkle mine batch with ' + addresses.length + ' addresses.' 48 | ); 49 | merkleTree = await buildMerkleTree(); 50 | }; 51 | 52 | const execute = async () => { 53 | const promises = addresses.map(addressInfo => { 54 | return new Promise(async (resolve, reject) => { 55 | try { 56 | await checkTransaction(addressInfo); 57 | } catch (e) { 58 | await checkTransaction(addressInfo); 59 | } 60 | resolve(); 61 | }); 62 | }); 63 | 64 | console.log('Mining beginning...'); 65 | await Promise.all(promises); 66 | }; 67 | 68 | const main = async () => { 69 | await init(); 70 | await execute(); 71 | }; 72 | 73 | main(); 74 | 75 | const checkTransaction = async addressInfo => { 76 | try { 77 | if (!addressInfo.lastTxn && addressInfo.firstTry) { 78 | console.log('Assuming this is the first txn for this address.'); 79 | client.set('eth_redis_nonce.' + addressInfo.address, 0); 80 | await createLptTxn(addressInfo, true); 81 | } else { 82 | if (!addressInfo.lastTxn) { 83 | //recover the last one... 84 | addressInfo.lastTxn = addressInfo.prevTxns[-1]; 85 | } 86 | 87 | console.log( 88 | '(' + 89 | addressInfo.txnCheck + 90 | ') Checking transaction ' + 91 | addressInfo.lastTxn + 92 | ', ' + 93 | addressInfo.address 94 | ); 95 | const txn = await web3.eth.getTransaction(addressInfo.lastTxn); 96 | if (txn != null && txn.blockNumber != null) { 97 | const newNonce = txn.nonce + 1; 98 | client.set('eth_redis_nonce.' + addressInfo.address, newNonce); 99 | console.log( 100 | 'txn completed... ' + 101 | addressInfo.lastTxn + 102 | ' for ' + 103 | addressInfo.address 104 | ); 105 | try { 106 | await createLptTxn(addressInfo, true); 107 | } catch (ex) { 108 | console.log( 109 | 'error creating txn ' + addressInfo.address, 110 | ex 111 | ); 112 | } 113 | } else if (txn == null) { 114 | console.log('txn is null', txn, addressInfo.address); 115 | await createLptTxn(addressInfo, false); 116 | } else { 117 | addressInfo.txnCheck++; 118 | if (addressInfo.txnCheck > 25) { 119 | try { 120 | console.log( 121 | 'txn not completed, creating new one in its place...' 122 | ); 123 | await createLptTxn(addressInfo, false); 124 | } catch (e) { 125 | console.log('error recreating txn', e); 126 | } 127 | } 128 | } 129 | } 130 | } catch (ex) { 131 | console.log('some general exception', ex); 132 | } 133 | await checkTransactionWithTimeout(addressInfo); 134 | }; 135 | 136 | const createLptTxn = async (addressInfo, isNew) => { 137 | const gasPrice = await getSafeGasPrice(); 138 | if (isNew || gasPrice > addressInfo.lastPrice) { 139 | const txnHashs = await mineLpt( 140 | gasPrice, 141 | merkleTree, 142 | addressInfo.address, 143 | addressInfo.pw, 144 | appParams.ethereum, 145 | appParams.bulkAddress 146 | ); 147 | addressInfo.prevTxns.push(addressInfo.lastTxn); //save this for later 148 | addressInfo.lastTxn = txnHashs[0]; 149 | addressInfo.lastPrice = gasPrice; 150 | addressInfo.firstTry = false; 151 | } 152 | addressInfo.txnCheck = 0; 153 | }; 154 | 155 | const checkTransactionWithTimeout = async addressInfo => { 156 | setTimeout(() => { 157 | try { 158 | checkTransaction(addressInfo); 159 | } catch (ex) { 160 | checkTransactionWithTimeout(addressInfo); 161 | } 162 | }, 1000 * 20); 163 | }; 164 | 165 | const getSafeGasPrice = async () => { 166 | let gasJson = null; 167 | try { 168 | const gasResp = await fetch( 169 | 'https://ethgasstation.info/json/ethgasAPI.json' 170 | ); 171 | gasJson = await gasResp.json(); 172 | lastGasResponse = gasJson; 173 | } catch (ex) { 174 | gasJson = lastGasResponse; 175 | } 176 | const tmp = Math.ceil((gasJson.average / 10 + 0.09) * 1000000000); 177 | console.log(tmp, 'vs', process.env.MAX_GAS_PRICE); 178 | if (tmp > process.env.MAX_GAS_PRICE) { 179 | return process.env.MAX_GAS_PRICE; 180 | } else if (tmp < process.env.MIN_GAS_PRICE) { 181 | return process.env.MIN_GAS_PRICE; 182 | } 183 | return tmp + 150000000; 184 | }; 185 | --------------------------------------------------------------------------------