{"_id":"@trufflesuite/web3-provider-engine","_rev":"44-271c78eb67b58a868453a0cbb6e7a39c","name":"@trufflesuite/web3-provider-engine","dist-tags":{"eip1559-beta":"15.0.13-3.beta","latest":"15.0.14"},"versions":{"14.0.6":{"name":"@trufflesuite/web3-provider-engine","version":"14.0.6","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@14.0.6","maintainers":[{"name":"nicholasjpaterno","email":"cashlion@protonmail.com"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"024d192cde9534a778e5d2436be1caf3c553a2e0","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-14.0.6.tgz","fileCount":98,"integrity":"sha512-nBLwJYCmEDtABIDib9VpwbtwsNRlDZ3Slsu0F2HsOf8MnFUXF4/7ysSH/Q9SXLeAyp0HvsMv4v123PpPwrv4Hg==","signatures":[{"sig":"MEYCIQCoQpqItgNgAZDuYn9szIkekWw9TlTW0l+q2xi0o3G2JgIhANbrW/uDNqVsAOnTC/Q3kNHNE5y6+xzesRZDCGvtNQZ1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2107997,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8ioCCRA9TVsSAnZWagAAqJoP/Rd4oclnHM5/Mbg3jT+n\n2TVD19hd1jXcxRwaVFNdbcsWQleuSvsWNrHI69EyYWByGzUtfiSm5rO3e4pz\nCtb3XHtplXlMUcX2bZXDL6o2KuanypssFclsniSdwkVuUBzzjQDZ5ur2MsHd\nltgswbmssjhu9dlHMXz7WOAcjQFYdQpb0m5EdUVePImAc9HXrnd6DTzwBexY\nsBf/29yDoLNBmxC9sfC25Sx2jGwve0liqyrAzPHwIbHa5iDPPvIfEZz23JPR\nD7X+9cTtR2q9u28bmSY4EOs0S0sxypSCsUQD6lb41asQ8+WqsstV02AsTpLk\nWhdHWHiG3X4d2LJ8g5rMHsl3tlKu90E3C2pjWenwDVhRBvPHlB3hEhpZDvzt\n2oxd/OD3Ix17ViIpzHKRJhJ6fB7Q02JZaNYxC420rUwGMcesCWMTME6TOCgU\neCX7ZDhWdX9To//Q1WYhUqUD+T0QwehTplQC1mrQZ7Undn/7jXBMQ7g5xJo8\nSbbgi+bjpRO81rowgD0t07jbLl9AIdvLc26osucTZH+kXAXQfHoou0mICXTe\naxq8XohPvdu83KKInbX5aDbqOlR39+uSlgrwVi8v1bUZOzC8OAtzD2wLI4XF\nEUoOygQuEogex+AqnIatciRWJdKvr/4i7mMBI7K3/7nWt0NyHWdqpiEikmUg\nqVN4\r\n=OdnT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","browser":{"ws":false,"request":false},"gitHead":"f65997b8f0183ded73f71dff4dfb3d7cf6d8135c","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && npm run lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && npm run bundle-engine && npm run bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ es2015 ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ es2015 ] ] > dist/ProviderEngine.js","prepublishOnly":"npm run build && npm run bundle"},"_npmUser":{"name":"eggplantzzz","email":"pobol234@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.14.5","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"10.20.1","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","eth-sig-util":"^1.4.2","ethereumjs-tx":"^1.2.0","ethereumjs-vm":"^2.3.4","json-rpc-error":"^2.0.0","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.2.0","eth-json-rpc-infura":"^3.1.0","promise-to-callback":"^1.0.0","eth-json-rpc-filters":"^4.0.2","json-stable-stringify":"^1.0.1","eth-json-rpc-middleware":"^4.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^5.15.1","babel-cli":"^6.26.0","browserify":"^16.1.1","@babel/core":"^7.3.4","ganache-core":"^2.5.3","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_14.0.6_1592928769994_0.5564064423922954","host":"s3://npm-registry-packages"}},"14.0.7":{"name":"@trufflesuite/web3-provider-engine","version":"14.0.7","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@14.0.7","maintainers":[{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"nicholasjpaterno","email":"cashlion@protonmail.com"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"8ffa31148d68cfdd4da067e5df30e03871ec8a74","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-14.0.7.tgz","fileCount":98,"integrity":"sha512-+OCKZOF1aVCOW9gWIXdK1l/SQnRPVcve56LpSGZQ+LZ6OKT6xVoLNNF+wKVvFxIis1JAZvnVKJFbUYbKEZ5aPQ==","signatures":[{"sig":"MEQCIFgn4yXTrgx0yH6R3WFWOpPhc9wAncJFVPfMl4+aCTe0AiAG0OaTz/KAHmO7TjwIImcxj8+0tmHAn3ktIUUIMbH/Lw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2111609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+nAcCRA9TVsSAnZWagAAymAP/RSTu7iZPNf0ikJ8OWRK\n9xLlCmAaSCIK1aXOBlJk/4sHi1an4V/oxg71c1J50NhapDQX1B30cbt2Av96\ny6SG9ICYiJ/H824GHxRlsAheQ28JRhlwIMdFsMHqjbIMTaCnFNjuQDfX465r\nf2YgcgMul9G40Qp2I36tzh0kgBLsM3zXyxuBM/NHld3NGWgjMOay+jUMyq5V\n8ExddAjmNRKuHAChM/NMPPZS+hF7vClO9BIEEYoueQexXRNJTVgZqhoQWex3\nZXCcKXNNcF+ZcScn161SZoz2GToc3JW6ZFkObzAaEsKSaf5EK8VqJUgJn80M\nx/DJmJ8mFJKH/Nn9QM19Lv9v3EFWdgqTGNPAymRgykwisqCc2JjkLFaAY5xp\n/EDpMZQpj2MSIbD7fFEorBCDbZpJX7lzQJkDeDYWOa318rDygliTtclW4+iE\n/E2GTEB1kMJalYxSzNuk4MlUI6oRX4SAQxyM84IEIEuk1qZWanzwWI45DzBu\neH7AAMnYclaOz35RK6rcvh4hw81nyc6l9jUUPbVyiMc/Lv/RNbL0XyK4vqrN\nKQxiKOvyTMG/zLfD1pqolT7syFdRF1QnR6hyEVi/+7UNYjI7sNellvJTM3B5\nKF4bL6XGRN1JpAnuCVJmKxwru02aDkkWNR9AkrQRXr+5gXD/yuNPZTE3i04M\nCSId\r\n=4r2l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","browser":{"ws":false,"request":false},"gitHead":"33702c70b279e8c0caa10cf31185606d2078d2c7","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && npm run lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && npm run bundle-engine && npm run bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ es2015 ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ es2015 ] ] > dist/ProviderEngine.js","prepublishOnly":"npm run build && npm run bundle"},"_npmUser":{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.13.4","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"10.19.0","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","eth-sig-util":"^1.4.2","ethereumjs-tx":"^1.2.0","ethereumjs-vm":"^2.3.4","json-rpc-error":"^2.0.0","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.2.0","eth-json-rpc-infura":"^3.1.0","promise-to-callback":"^1.0.0","eth-json-rpc-filters":"^4.0.2","json-stable-stringify":"^1.0.1","eth-json-rpc-middleware":"^4.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^5.15.1","babel-cli":"^6.26.0","browserify":"^16.1.1","@babel/core":"^7.3.4","ganache-core":"^2.5.3","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_14.0.7_1593471003824_0.004089947883565204","host":"s3://npm-registry-packages"}},"15.0.0-0":{"name":"@trufflesuite/web3-provider-engine","version":"15.0.0-0","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@15.0.0-0","maintainers":[{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"nicholasjpaterno","email":"cashlion@protonmail.com"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"2ef8e895c14e360d0ee9551251cbc04546700678","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.0-0.tgz","fileCount":98,"integrity":"sha512-jafk5stmB6n8NvZTJehqiICaVE+NEMV9w/wnIMkM7psgSOT8IS68K0g5C4jtmq0fRrg9mJBdX6BOkQ+BlDxNIw==","signatures":[{"sig":"MEYCIQDbJ4F1WVVjldLUfQd5c1Ee6wCRfo4Mlo8SQpKw2jo5XAIhAPfoBQ62f8e+z9VXoc9402mjE9vSbLGZ79/hqAwedgXA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2160614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/izzCRA9TVsSAnZWagAAnPsP/2Kh/fAC/+5/mp3fNNBC\n6g/M67ykteyWBeSNpCIhh8rjeO0Q6ouTP7YqnWZ8Q81cjkgremfgmP279tvj\nuy2uknGlp2aVdUtB+l6R/gfWcbM0qKCioOlA3g1LDbZ51+5b0rItz8C8lbC6\nhw0NLsSsp7tHAtN5DrvZ8me2BkninEf36a+GS2RRhu5qDKI3DVFRtTW//XkT\nhunZMRCFL4830C2r6q4R9JOZ5fZxvY7DGYaMMlurMUbZOQLybhTDUkcEdKDW\nPmjF60JsKy2BNKhAuUQY36ofXnq46Cz7WvrEOtC7jIER1Sk3g3DftHDTmZhn\nKi/RAsSR83cRFuX+dgmRWBVf5Y+fYMgaz6BtgLeWFQQQK9VvpkAAyi8Kl88Y\n7u0lOnYTF5qD6F5b7v3XD+WsMCveXreP9uKCxE+PYpIlew+oJK1RFjbBpN1r\ntgPHLBwWsntsjOS6gigzUe67u1A+YLTDfo3RWrbxkEVus4UYIb4QSZ8X5bhP\nrSX6PU2odNxyl9EYKtPzeNkur+bnb+HVu0SBZh1Qu0oWmiEGdF0HN7xKVlCH\nzf7OdjltznXT8seIsHN7QNtJw8ctj3tX7METzRerlJ0pFx42td64C9zBdBPb\nzP74QkgDcuY+KFkAMzMZhALr6H4EQRAiMxbijKYurjSxTToea5lIXkIDAVSQ\n/wkm\r\n=4Ghm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","browser":{"ws":false,"request":false},"gitHead":"ffdb2aa39688ea7145c8f9b694136ac860e24710","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && npm run lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && npm run bundle-engine && npm run bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ es2015 ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ es2015 ] ] > dist/ProviderEngine.js","prepublishOnly":"npm run build && npm run bundle"},"_npmUser":{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.14.4","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"10.20.1","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","ethereumjs-tx":"^1.2.0","ethereumjs-vm":"^2.3.4","json-rpc-error":"^2.0.0","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.2.0","eth-json-rpc-infura":"^3.1.0","promise-to-callback":"^1.0.0","eth-json-rpc-filters":"^4.0.2","json-stable-stringify":"^1.0.1","eth-json-rpc-middleware":"^4.1.1","@trufflesuite/eth-sig-util":"^1.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^5.15.1","babel-cli":"^6.26.0","browserify":"^16.1.1","@babel/core":"^7.3.4","ganache-core":"^2.5.3","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_15.0.0-0_1593715954741_0.6662715852724217","host":"s3://npm-registry-packages"}},"15.0.0-1":{"name":"@trufflesuite/web3-provider-engine","version":"15.0.0-1","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@15.0.0-1","maintainers":[{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"nicholasjpaterno","email":"cashlion@protonmail.com"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"9f3a5a2a72e096e2ae0c61ab3c031dd25758db35","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.0-1.tgz","fileCount":98,"integrity":"sha512-1pKHLiDwyXxAMKK9t2MnLnHNMDoTHBDclHVINRw3sA+mIgW796FjwpyjLEsWhKmoQpeSF9rOr0d7pO8IBnswvA==","signatures":[{"sig":"MEUCIHUt0qdV7T92zv7D3w1uKIfaaLwVkhVgQtAxLHEEtg3WAiEAny2q4u1juir/3iyJFa7vFI4oxQ21z9yN3GltWugzoBA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2160646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBb9JCRA9TVsSAnZWagAANlYP/1UDl9oxcSjNFvkhB/1+\nlrDZVftIjbDSjPMbhzAZfWCeLqni+8jRNpAea1Du6EwQ23GL/1ahrWbKi5IO\nWF/AFcL+c1dhtSJgHw24csIt0lZk8n+dce5nt4nJCXewenHAx9KIo6YCmRg6\nKY95HDZi3ck4UzzBZEPnRSsXnK+AVCo52pwXoTacf3BVo0f7i06VKDEkGTaG\nwHJ4URUtGr9xq73jRzC1KhuCRAtSRg2z6c8e/KVS9x5vcsyQXPCjmF8Z6R+T\n/GfFFicvmVfcmNLdED8nEo8d6+hFydbvvTZBAbxJRacNXt1KTb4N1oNaex+k\n8hYWVeAluN85JK52+9pMpXCM/guY8NigVhtwSPAWLnht6WoFY6RHAiE5Z6R4\ntu9vK8GJj2oJSX01b5JrDeHPnOvPFYazHFNLMCwEr4mtgQA9vy1ebTD/jWrT\n3ECXJnOZ6ikqzurZ/GtU1EOw9gSMCXVbKUznjn4qehSZPsBQL3uxQpBFo13f\nhzoBSJI6huOX204gYpsS1wVDOCZOrnCEV6dEwqfjRQ6yXbRdRVDHqgJfnns2\nyc+o7AikKxLckl9xWiMczh93NsVF8mcIstgp3zn1icWpc4/oKj6wuJvLgAg6\ns8HBjVKHbRAlYqnJfdrS4ZvlCvVbC0tJSboqAzx7p4lcGcO6lBHUQtkgd4cw\n6TrY\r\n=ysfM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","browser":{"ws":false,"request":false},"gitHead":"bd061d1905673cd3147944580f779d9ee030dde6","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && npm run lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && npm run bundle-engine && npm run bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ es2015 ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ es2015 ] ] > dist/ProviderEngine.js","prepublishOnly":"npm run build && npm run bundle"},"_npmUser":{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.14.4","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"10.21.0","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","ethereumjs-tx":"^1.2.0","ethereumjs-vm":"^2.3.4","json-rpc-error":"^2.0.0","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.2.0","eth-json-rpc-infura":"^3.1.0","promise-to-callback":"^1.0.0","eth-json-rpc-filters":"^4.0.2","json-stable-stringify":"^1.0.1","@trufflesuite/eth-sig-util":"^1.4.2","@trufflesuite/eth-json-rpc-middleware":"^4.4.2-0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^5.15.1","babel-cli":"^6.26.0","browserify":"^16.1.1","@babel/core":"^7.3.4","ganache-core":"^2.5.3","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_15.0.0-1_1594212169191_0.6522328739799124","host":"s3://npm-registry-packages"}},"15.0.0-2":{"name":"@trufflesuite/web3-provider-engine","version":"15.0.0-2","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@15.0.0-2","maintainers":[{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"nicholasjpaterno","email":"cashlion@protonmail.com"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"0e9a581cfda6b82ab8224883859a954b5ee5fb66","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.0-2.tgz","fileCount":98,"integrity":"sha512-rBktH8MkEL5xrdI9YJIuaOEr0emEpWzw/5ZXRUWJxrxc/GE/v5n10JR8MeKK9g9IRWc9rFFb8u4ac2rvoDBzzQ==","signatures":[{"sig":"MEYCIQDtRnsQ3kGY/5nCQI6kL7IoIJgQxnql1hqXoKEfyicVJQIhAOtlioVY8J8o+EkxKg0xWVJxaaxijdtQCvkO3LWV3KjJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2177415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBdEACRA9TVsSAnZWagAAwD0P/12YNpxs9TC4OsJkZcel\nrZyIIEqQC3SWa3LBQlk7Avx3bmWCHIigw1pW0jm6F7kJ9BQ4o9/kYqlI1933\nOoiW5E9F5ajHakLRmFQG0i9tf2Y6FkcNQRo3wWBNGiD/sKBqk5r3zcfXckcM\nOlcUt0snYgaNiNJF9lQ5KE5rmUGctYLdfhxSQT4PCRMBKKOiMwINkLZIpc3H\nQwqK0MMva29L2dX3AclELBYJlkOjW1LErLBZF0ibXmyWGajRuRU0JVXlEcvL\nFGDN2kwJygbTjs9NkIf//YyPeh8UR6AFnAvaunrnTU4GzmIUGWs3jjczdETp\nai6EwwKdj0MAKu7p2MGljtaJ9Z8iF/Qdnxpd+wuG5C/vSeFcSfZYPCMYTLGy\nCchN18WRKi05MzbnzFlKFmkPPt/Q5UAEaj7Ng86jx/aiFasK5Gchm5hGd6vU\nFtkTXceEUYZ8Xt+GWWaEsMNk3IqEe6oyV4zP+fJfAVsto8EIeMTgbvmr12b7\nX37w6pI8/W659M3WM7xDXFsd1o5wkPCFofDOhE2O+FDd3h9juhU+Y5FVU0UT\nV1oOiLe6GpBSjRplPEMbY7mkXilDJw/7dCUKwXUNV5zEFqvo5qt3u62iCCuU\ne6r0rCp8fEjsJuq/z1XzrvRFejTy7WiFhav9d2zQz47n1VkCI9ETPqRKrz9w\nh/DR\r\n=d/5X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","browser":{"ws":false,"request":false},"gitHead":"392f89b9130e41041a30454e04a8c65b17649b3e","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && npm run lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && npm run bundle-engine && npm run bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ es2015 ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ es2015 ] ] > dist/ProviderEngine.js","prepublishOnly":"npm run build && npm run bundle"},"_npmUser":{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.14.4","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"10.21.0","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","ethereumjs-tx":"^1.2.0","ethereumjs-vm":"^2.3.4","json-rpc-error":"^2.0.0","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.2.0","eth-json-rpc-infura":"^3.1.0","promise-to-callback":"^1.0.0","json-stable-stringify":"^1.0.1","@trufflesuite/eth-sig-util":"^1.4.2","@trufflesuite/eth-json-rpc-filters":"^4.1.2-1","@trufflesuite/eth-json-rpc-middleware":"^4.4.2-1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^5.15.1","babel-cli":"^6.26.0","browserify":"^16.1.1","@babel/core":"^7.3.4","ganache-core":"^2.5.3","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_15.0.0-2_1594216703789_0.2734835898827406","host":"s3://npm-registry-packages"}},"15.0.13-0":{"name":"@trufflesuite/web3-provider-engine","version":"15.0.13-0","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@15.0.13-0","maintainers":[{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"nicholasjpaterno","email":"cashlion@protonmail.com"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"94270e3d65fec61abaff68682519a0e674aae3ad","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-0.tgz","fileCount":98,"integrity":"sha512-bgGE2Sg56XMu0dhJl7UMiFfEFSvxW47G0RCQ3schV2kUilLKeqvGHE9z1ElVi8W30F/pF7VDbp5DkprvFC9+HQ==","signatures":[{"sig":"MEQCIFwUFWc4Jlh5ygBi0bEzqM8iGLuJMZb64Q/rhtLjj0mzAiBdhN6U/e8fSRmqO8SwrXC83IfQN2j2AArjvg5uUIdlfw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2233941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFghuCRA9TVsSAnZWagAAGeMQAJLiBQhHu34MkRnVRr9I\nagL47d4QNs9Dhohas4yuXHxAe+1Vqr5FH4lcIucOV1K5GVQc1zQae7Zfom4x\nN2dng8o4VtPpsIpV7C23++Kpal9apeAw0aArL7EJO9zGNHc2V1A91eUqiiWN\n2Hi0RehOC4+GmAiin7XEIbuzEWlimWno6Xig/Ycj1PNnS0ISifNmTix0LJil\nHRg6xo+7VFi1kDuSSybzgqkzDPt3uq0JXaUgtnjZB0wtIsbE3Z9ss5SeENg9\nXl4nA8zkxQaBLh2RFubIUvVKQXsbEz63fJOLo63ToLvFRcL9s50tvdsYvear\nveOqKIFR8SbxDaH5SjV1RozylLj9ruD859U1Lgf2EFrdJWFAevt2rYfBXnef\ngg2gvZhghp/+NjK11RUUkviDkVaVPyZoKEZ/X9LlRKtWDcNC7T/mCbtvKpby\nrtEfByCHksmisleOhqSf/b1uJxhgxWKqqxDXVmXAHOlaygIn5NoTZvSHgyzD\no5Z7zC7hUTAe0fnnEQP/QDTKnhpU1E5wHAVvNyx+PVEfavtoJ3uJy7VOHi5y\nZj1+twS/95+Zd9RCeI8F+CKMP6tXoZLgo9yiHGbtvjmvpNmCdBGo2iDSHBxc\nks9HRrSubaVQu0DUVl+cSKF6gFC9akAnmHx7H5fWNTBQB6y9BeX+Zx5y+aaf\njQ4t\r\n=Vooi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","browser":{"ws":false,"request":false},"gitHead":"d2b3ccae30d61df1ef7236a4e3cbda6040ca50a0","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && yarn lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && yarn bundle-engine && yarn bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ProviderEngine.js","prepublishOnly":"yarn build && yarn bundle"},"_npmUser":{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.14.4","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"10.21.0","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","ethereumjs-tx":"^1.2.0","ethereumjs-vm":"^2.3.4","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.4.2","eth-json-rpc-errors":"^2.0.2","eth-json-rpc-infura":"^4.0.1","promise-to-callback":"^1.0.0","json-stable-stringify":"^1.0.1","@trufflesuite/eth-sig-util":"^1.4.2","@trufflesuite/eth-json-rpc-filters":"^4.1.2-1","@trufflesuite/eth-json-rpc-middleware":"^4.4.2-1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^6.2.0","babelify":"^10.0.0","@babel/cli":"^7.5.5","browserify":"^16.5.0","@babel/core":"^7.5.5","ganache-core":"^2.7.0","@babel/preset-env":"^7.5.5"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_15.0.13-0_1595279469992_0.32815470741998753","host":"s3://npm-registry-packages"}},"15.0.13-1":{"name":"@trufflesuite/web3-provider-engine","version":"15.0.13-1","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@15.0.13-1","maintainers":[{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"nicholasjpaterno","email":"cashlion@protonmail.com"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"f6a7f7131a2fdc4ab53976318ed13ce83e8e4bcb","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-1.tgz","fileCount":98,"integrity":"sha512-6u3x/iIN5fyj8pib5QTUDmIOUiwAGhaqdSTXdqCu6v9zo2BEwdCqgEJd1uXDh3DBmPRDfiZ/ge8oUPy7LerpHg==","signatures":[{"sig":"MEUCIQCUwCqlUhtDo/BtijLqWtOqk/q/QTyLLGil/Alra8R+NgIgNPnXBNMCOnvQNf1c6AFR8O36XfeXqdlERLXrhrww+v4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2234308,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLY6aCRA9TVsSAnZWagAAl48P/AnBPskcJSGxUrW6mzjP\n91aafoCm09xwGbi5ryfjaCLKtA53sOje/cD+xrHJfvRC3TFNXHqf7ZJUi4AY\n5IqbJc8STbSAk1xVilZoGqbb4pmaw9HrGROigrMbXyK+gHmUZsZirbnQeyQ+\nq1n1JTZh9qmTgpXyn4h0XzC4dc9Bbm3ZhwSQZ8MCuFKUEjKRpxgfgibwoiFU\ngrhusmPtbWuin9Zz/oHSz26BwMx+fgUlMSerCkpsJqwY7mU8YO5rB9ClXQw0\nT2mHzLS0SYUyOOWuzcJ4M/rmOm5IpRyEGxDbMX/+9HvC9HHrNYdKFS8XGXYK\nKZuHJ9LhvInK5NorTYWtMXVjInqqU6eEhcP5t7WnRsLJxgKN6uasEnMNw7Dn\nRuC9yR5vXPmFJJulHYHRx+uDC5tht3q6GL029LHyJlhQC6sRy+EWKZdDpNiu\nYYDsKiWhz++QJPDR5zGNPD2i4zVc59MtHtdIZctYD5rKmxJT33S8tnbeDnyO\ntIy5D3cChbnN97hlN8C2HLRi7C5ma2Tq8UjJka1G0Impjk9kae0KzeF2upmg\nQuQ3PbcVTsaBV5qY/eYaZz7n7LSBWBd2Vo9cYZJtDijIXBAVpxORHVk1G7hB\ndHv1ZeMefYEVQ3rBV3Hs8k+uQCnMyJIOENG5BeWSedyjaYGp9+n86Y89kP88\nMFmj\r\n=EqBY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","browser":{"ws":false,"request":false},"gitHead":"d0a1f0a917a0c94d15778f6d5ff09470d71565f3","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && yarn lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && yarn bundle-engine && yarn bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ProviderEngine.js","prepublishOnly":"yarn build && yarn bundle"},"_npmUser":{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.14.4","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"10.21.0","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","ethereumjs-tx":"^1.2.0","ethereumjs-vm":"^2.3.4","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.4.2","eth-json-rpc-errors":"^2.0.2","promise-to-callback":"^1.0.0","json-stable-stringify":"^1.0.1","@trufflesuite/eth-sig-util":"^1.4.2","@trufflesuite/eth-json-rpc-infura":"^4.0.3-0","@trufflesuite/eth-json-rpc-filters":"^4.1.2-1","@trufflesuite/eth-json-rpc-middleware":"^4.4.2-1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^6.2.0","babelify":"^10.0.0","@babel/cli":"^7.5.5","browserify":"^16.5.0","@babel/core":"^7.5.5","ganache-core":"^2.7.0","@babel/preset-env":"^7.5.5"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_15.0.13-1_1596821145993_0.43484716259072","host":"s3://npm-registry-packages"}},"15.0.13-2.beta":{"name":"@trufflesuite/web3-provider-engine","version":"15.0.13-2.beta","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@15.0.13-2.beta","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"rkalis","email":"roscokalis@gmail.com"},{"name":"cds-amal","email":"cds.sudama@gmail.com"},{"name":"micaiahreid","email":"micaiahreid@gmail.com"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"f37f8d438389dbb708dbd59d987531df7626a7b7","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-2.beta.tgz","fileCount":98,"integrity":"sha512-TdD8EbsvQt3xt7bYb0Nt2FXp7O7lVxLURt1KioUaqw5RR4CgdzwwlQuwx8pFzZe1pUZvo03c4tWKx+Kqn26azQ==","signatures":[{"sig":"MEQCIFRTQ5jQ5eR1ri1S2+722rYj8YDPwI7Qu8QcW4YRq1V4AiAP5Ragg+NbTkBVDr0VyqXwqfUjhKlOgqbCaoGHgU/K6g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2694987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhP+C1CRA9TVsSAnZWagAAwFAP/An7uy81QujrlWJqOztl\nGVcpXC3xWMbVkrQ+Lw/kh6ymxDXKpPMzwPR1qkH5AwzSBsjmksUPQ4HajFtN\noTJD0X0AWRL5GyHGSkhsNu07wB8/FVSAYCwUkc1lYhnOg3YI9AAGlEcNz0NW\n4/xy5tKKXwn0gC56M02xK8PxerUFdVf5tjSOdF6Db+Fl7u7duDl9nWBMF3f7\nHYjh97VCSUYf1EW3FUm4M7Cd/hhGwDmMo7j7c6UJxiJKUzWUgJgqCvHdXaPo\nXB2CtSj4ENZ5JiI58gByScGVUDZXDUECbznRV6NLVVD9pX0VquQZgba5emlq\n/HLDt2tBcxCzUs9hExPC+/RK7o4djQiG63yrMHVt1XhDQfKS1kbHaR48DlOW\nZV2RcoOz/vS74gn9m5uxz/HyAMgQZlF/2Bp3HDwksCghqQLQozUsYNIKg/4X\nOu1Senh0Q9AGt6T8pv7e9eyuFL4tvDuH6E0Isr2OHRlRGxbeN8i9sGKZJqK3\nCSXBeYjf9JeSudI9j3NeBahVBym3+R/uvoLSsLUtI+ABq5g3kxxEgIuyDTge\nZt0iteLgMyfwfkRb2hjjp2yh2RMy565xOIQvUBqhqo53oD9YUbOEMnTIQHED\nl+MnXoJUQm8kw+OMRL8Ab24ybgXRkepVdVoGmd9hRzK/SuGOpcQWMuygyHaK\nc95A\r\n=rXZJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# Web3 ProviderEngine\n\nWeb3 ProviderEngine is a tool for composing your own [web3 providers](https://github.com/ethereum/wiki/wiki/JavaScript-API#web3).\n\nOriginally created for MetaMask, but has been superceded by [json-rpc-engine](https://www.npmjs.com/package/json-rpc-engine) in combination with our [eth-json-rpc-middleware](https://www.npmjs.com/package/eth-json-rpc-middleware). This module is not very actively maintained, so we recommend using that one instead.\n\n### Composable\n\nBuilt to be modular - works via a stack of 'sub-providers' which are like normal web3 providers but only handle a subset of rpc methods.\n\nThe subproviders can emit new rpc requests in order to handle their own;  e.g. `eth_call` may trigger `eth_getAccountBalance`, `eth_getCode`, and others.\nThe provider engine also handles caching of rpc request results.\n\n```js\nconst ProviderEngine = require('web3-provider-engine')\nconst CacheSubprovider = require('web3-provider-engine/subproviders/cache.js')\nconst FixtureSubprovider = require('web3-provider-engine/subproviders/fixture.js')\nconst FilterSubprovider = require('web3-provider-engine/subproviders/filters.js')\nconst VmSubprovider = require('web3-provider-engine/subproviders/vm.js')\nconst HookedWalletSubprovider = require('web3-provider-engine/subproviders/hooked-wallet.js')\nconst NonceSubprovider = require('web3-provider-engine/subproviders/nonce-tracker.js')\nconst RpcSubprovider = require('web3-provider-engine/subproviders/rpc.js')\n\nvar engine = new ProviderEngine()\nvar web3 = new Web3(engine)\n\n// static results\nengine.addProvider(new FixtureSubprovider({\n  web3_clientVersion: 'ProviderEngine/v0.0.0/javascript',\n  net_listening: true,\n  eth_hashrate: '0x00',\n  eth_mining: false,\n  eth_syncing: true,\n}))\n\n// cache layer\nengine.addProvider(new CacheSubprovider())\n\n// filters\nengine.addProvider(new FilterSubprovider())\n\n// pending nonce\nengine.addProvider(new NonceSubprovider())\n\n// vm\nengine.addProvider(new VmSubprovider())\n\n// id mgmt\nengine.addProvider(new HookedWalletSubprovider({\n  getAccounts: function(cb){ ... },\n  approveTransaction: function(cb){ ... },\n  signTransaction: function(cb){ ... },\n}))\n\n// data source\nengine.addProvider(new RpcSubprovider({\n  rpcUrl: 'https://testrpc.metamask.io/',\n}))\n\n// log new blocks\nengine.on('block', function(block){\n  console.log('================================')\n  console.log('BLOCK CHANGED:', '#'+block.number.toString('hex'), '0x'+block.hash.toString('hex'))\n  console.log('================================')\n})\n\n// network connectivity error\nengine.on('error', function(err){\n  // report connectivity errors\n  console.error(err.stack)\n})\n\n// start polling for blocks\nengine.start()\n```\n\nWhen importing in webpack:\n```js\nimport * as Web3ProviderEngine  from 'web3-provider-engine';\nimport * as RpcSource  from 'web3-provider-engine/subproviders/rpc';\nimport * as HookedWalletSubprovider from 'web3-provider-engine/subproviders/hooked-wallet';\n```\n\n### Built For Zero-Clients\n\nThe [Ethereum JSON RPC](https://github.com/ethereum/wiki/wiki/JSON-RPC) was not designed to have one node service many clients.\nHowever a smaller, lighter subset of the JSON RPC can be used to provide the blockchain data that an Ethereum 'zero-client' node would need to function.\nWe handle as many types of requests locally as possible, and just let data lookups fallback to some data source ( hosted rpc, blockchain api, etc ).\nCategorically, we don’t want / can’t have the following types of RPC calls go to the network:\n* id mgmt + tx signing (requires private data)\n* filters (requires a stateful data api)\n* vm (expensive, hard to scale)\n\n### Change Log\n\n##### 15.0.0\n\n- uses eth-block-tracker@4, but still provides block body on ('block', 'latest', and 'rawBlock'). Other events ('sync') provide block number hex string instead of block body.\n- SubscriptionsSubprovider automatically forwards events to provider\n- replacing subprovider implementations with those in [`eth-json-rpc-engine`](https://github.com/MetaMask/eth-json-rpc-middleware)\n- browserify: moved to `babelify@10` + `@babel/core@7`\n\n##### 14.0.0\n\n- default dataProvider for zero is Infura mainnet REST api\n- websocket support\n- subscriptions support\n- remove solc subprovider\n- removed `dist` from git (but published in npm module)\n- es5 builds in `dist/es5`\n- zero + ProviderEngine bundles are es5\n- web3 subprovider renamed to provider subprovider\n- error if provider subprovider is missing a proper provider\n- removed need to supply getAccounts hook\n- fixed `hooked-wallet-ethtx` message signing\n- fixed `hooked-wallet` default txParams\n\n##### 13.0.0\n\n- txs included in blocks via [`eth-block-tracker`](https://github.com/kumavis/eth-block-tracker)@2.0.0\n\n##### 12.0.0\n\n- moved block polling to [`eth-block-tracker`](https://github.com/kumavis/eth-block-tracker).\n\n##### 11.0.0\n\n- zero.js - replaced http subprovider with fetch provider (includes polyfill for node).\n\n##### 10.0.0\n\n- renamed HookedWalletSubprovider `personalRecoverSigner` to `recoverPersonalSignature`\n\n##### 9.0.0\n\n- `pollingShouldUnref` option now defaults to false\n","browser":{"ws":false,"request":false},"gitHead":"fb2f7b54285e07020834883980753d3c02827a61","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && yarn lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && yarn bundle-engine && yarn bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ProviderEngine.js","prepublishOnly":"yarn build && yarn bundle"},"_npmUser":{"name":"eggplantzzz","email":"pobol234@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.14.14","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"12.22.0","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","ethereumjs-vm":"^2.3.4","@ethereumjs/tx":"^3.3.0","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.4.2","eth-json-rpc-errors":"^2.0.2","promise-to-callback":"^1.0.0","json-stable-stringify":"^1.0.1","@trufflesuite/eth-sig-util":"^1.4.2","@trufflesuite/eth-json-rpc-infura":"^4.0.3-0","@trufflesuite/eth-json-rpc-filters":"^4.1.2-1","@trufflesuite/eth-json-rpc-middleware":"^4.4.2-1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^6.2.0","babelify":"^10.0.0","@babel/cli":"^7.5.5","browserify":"^16.5.0","@babel/core":"^7.5.5","ganache-core":"^2.7.0","@babel/preset-env":"^7.5.5"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_15.0.13-2.beta_1631576245731_0.0023000240482049517","host":"s3://npm-registry-packages"}},"15.0.13-3.beta":{"name":"@trufflesuite/web3-provider-engine","version":"15.0.13-3.beta","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@15.0.13-3.beta","maintainers":[{"name":"kevinweaver","email":"kevinweaver2@gmail.com"},{"name":"leeftk","email":"leandro.faria@consensys.net"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"rkalis","email":"roscokalis@gmail.com"},{"name":"cds-amal","email":"cds.sudama@gmail.com"},{"name":"micaiahreid","email":"micaiahreid@gmail.com"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"3dbd5db0ced613afced2739cce46e8850c101bd4","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-3.beta.tgz","fileCount":98,"integrity":"sha512-YfekttkBEiTvdjCRJfGcbB8ST8ouX7geBRGYOQ9DWNoljVHCALPXn0F0nweClVrARUAKTYN0ka/mS1StZJF4xQ==","signatures":[{"sig":"MEUCIQDFzhWrtpfhlheSJhyk0dywh0igxBXi9W3C9MAP74bbSgIgHMZPNWT814CHqTV6kijUHIixn9vIQULcpfhIbK7ynpo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3422772},"main":"index.js","readme":"# Web3 ProviderEngine\n\nWeb3 ProviderEngine is a tool for composing your own [web3 providers](https://github.com/ethereum/wiki/wiki/JavaScript-API#web3).\n\nOriginally created for MetaMask, but has been superceded by [json-rpc-engine](https://www.npmjs.com/package/json-rpc-engine) in combination with our [eth-json-rpc-middleware](https://www.npmjs.com/package/eth-json-rpc-middleware). This module is not very actively maintained, so we recommend using that one instead.\n\n### Composable\n\nBuilt to be modular - works via a stack of 'sub-providers' which are like normal web3 providers but only handle a subset of rpc methods.\n\nThe subproviders can emit new rpc requests in order to handle their own;  e.g. `eth_call` may trigger `eth_getAccountBalance`, `eth_getCode`, and others.\nThe provider engine also handles caching of rpc request results.\n\n```js\nconst ProviderEngine = require('web3-provider-engine')\nconst CacheSubprovider = require('web3-provider-engine/subproviders/cache.js')\nconst FixtureSubprovider = require('web3-provider-engine/subproviders/fixture.js')\nconst FilterSubprovider = require('web3-provider-engine/subproviders/filters.js')\nconst VmSubprovider = require('web3-provider-engine/subproviders/vm.js')\nconst HookedWalletSubprovider = require('web3-provider-engine/subproviders/hooked-wallet.js')\nconst NonceSubprovider = require('web3-provider-engine/subproviders/nonce-tracker.js')\nconst RpcSubprovider = require('web3-provider-engine/subproviders/rpc.js')\n\nvar engine = new ProviderEngine()\nvar web3 = new Web3(engine)\n\n// static results\nengine.addProvider(new FixtureSubprovider({\n  web3_clientVersion: 'ProviderEngine/v0.0.0/javascript',\n  net_listening: true,\n  eth_hashrate: '0x00',\n  eth_mining: false,\n  eth_syncing: true,\n}))\n\n// cache layer\nengine.addProvider(new CacheSubprovider())\n\n// filters\nengine.addProvider(new FilterSubprovider())\n\n// pending nonce\nengine.addProvider(new NonceSubprovider())\n\n// vm\nengine.addProvider(new VmSubprovider())\n\n// id mgmt\nengine.addProvider(new HookedWalletSubprovider({\n  getAccounts: function(cb){ ... },\n  approveTransaction: function(cb){ ... },\n  signTransaction: function(cb){ ... },\n}))\n\n// data source\nengine.addProvider(new RpcSubprovider({\n  rpcUrl: 'https://testrpc.metamask.io/',\n}))\n\n// log new blocks\nengine.on('block', function(block){\n  console.log('================================')\n  console.log('BLOCK CHANGED:', '#'+block.number.toString('hex'), '0x'+block.hash.toString('hex'))\n  console.log('================================')\n})\n\n// network connectivity error\nengine.on('error', function(err){\n  // report connectivity errors\n  console.error(err.stack)\n})\n\n// start polling for blocks\nengine.start()\n```\n\nWhen importing in webpack:\n```js\nimport * as Web3ProviderEngine  from 'web3-provider-engine';\nimport * as RpcSource  from 'web3-provider-engine/subproviders/rpc';\nimport * as HookedWalletSubprovider from 'web3-provider-engine/subproviders/hooked-wallet';\n```\n\n### Built For Zero-Clients\n\nThe [Ethereum JSON RPC](https://github.com/ethereum/wiki/wiki/JSON-RPC) was not designed to have one node service many clients.\nHowever a smaller, lighter subset of the JSON RPC can be used to provide the blockchain data that an Ethereum 'zero-client' node would need to function.\nWe handle as many types of requests locally as possible, and just let data lookups fallback to some data source ( hosted rpc, blockchain api, etc ).\nCategorically, we don’t want / can’t have the following types of RPC calls go to the network:\n* id mgmt + tx signing (requires private data)\n* filters (requires a stateful data api)\n* vm (expensive, hard to scale)\n\n### Change Log\n\n##### 15.0.0\n\n- uses eth-block-tracker@4, but still provides block body on ('block', 'latest', and 'rawBlock'). Other events ('sync') provide block number hex string instead of block body.\n- SubscriptionsSubprovider automatically forwards events to provider\n- replacing subprovider implementations with those in [`eth-json-rpc-engine`](https://github.com/MetaMask/eth-json-rpc-middleware)\n- browserify: moved to `babelify@10` + `@babel/core@7`\n\n##### 14.0.0\n\n- default dataProvider for zero is Infura mainnet REST api\n- websocket support\n- subscriptions support\n- remove solc subprovider\n- removed `dist` from git (but published in npm module)\n- es5 builds in `dist/es5`\n- zero + ProviderEngine bundles are es5\n- web3 subprovider renamed to provider subprovider\n- error if provider subprovider is missing a proper provider\n- removed need to supply getAccounts hook\n- fixed `hooked-wallet-ethtx` message signing\n- fixed `hooked-wallet` default txParams\n\n##### 13.0.0\n\n- txs included in blocks via [`eth-block-tracker`](https://github.com/kumavis/eth-block-tracker)@2.0.0\n\n##### 12.0.0\n\n- moved block polling to [`eth-block-tracker`](https://github.com/kumavis/eth-block-tracker).\n\n##### 11.0.0\n\n- zero.js - replaced http subprovider with fetch provider (includes polyfill for node).\n\n##### 10.0.0\n\n- renamed HookedWalletSubprovider `personalRecoverSigner` to `recoverPersonalSignature`\n\n##### 9.0.0\n\n- `pollingShouldUnref` option now defaults to false\n","browser":{"ws":false,"request":false},"gitHead":"75260672607c6cf289d4e8fe5ce8d3b4e31651b8","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && yarn lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && yarn bundle-engine && yarn bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ProviderEngine.js","prepublishOnly":"yarn build && yarn bundle"},"_npmUser":{"name":"eggplantzzz","email":"pobol234@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.14.14","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"12.22.0","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","ethereumjs-vm":"^2.3.4","@ethereumjs/tx":"^3.3.0","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.4.2","eth-json-rpc-errors":"^2.0.2","promise-to-callback":"^1.0.0","json-stable-stringify":"^1.0.1","@trufflesuite/eth-sig-util":"^1.4.2","@trufflesuite/eth-json-rpc-infura":"^4.0.3-0","@trufflesuite/eth-json-rpc-filters":"^4.1.2-1","@trufflesuite/eth-json-rpc-middleware":"^4.4.2-1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^6.2.0","babelify":"^10.0.0","@babel/cli":"^7.5.5","browserify":"^16.5.0","@babel/core":"^7.5.5","ganache-core":"^2.7.0","@babel/preset-env":"^7.5.5"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_15.0.13-3.beta_1634329731211_0.5431239576763851","host":"s3://npm-registry-packages"}},"15.0.14":{"name":"@trufflesuite/web3-provider-engine","version":"15.0.14","author":"","license":"MIT","_id":"@trufflesuite/web3-provider-engine@15.0.14","maintainers":[{"name":"lsqproduction","email":"ll@trufflesuite.com"},{"name":"kevinweaver","email":"kevinweaver2@gmail.com"},{"name":"leeftk","email":"leandro.faria@consensys.net"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"rkalis","email":"roscokalis@gmail.com"},{"name":"cds-amal","email":"cds.sudama@gmail.com"},{"name":"micaiahreid","email":"micaiahreid@gmail.com"}],"homepage":"https://github.com/trufflesuite/provider-engine#readme","bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"dist":{"shasum":"8f9696f434585cc0ab2e57c312090c1f138bc471","tarball":"https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz","fileCount":98,"integrity":"sha512-6/LoWvNMxYf0oaYzJldK2a9AdnkAdIeJhHW4nuUBAeO29eK9xezEaEYQ0ph1QRTaICxGxvn+1Azp4u8bQ8NEZw==","signatures":[{"sig":"MEQCIQDZf8te4g7ITd5bT8W9q7ga/w7x6dVdm5olNl88R22yHgIfV+/I2x441UrXXpuBt2LqQAbykUxa3VzyNBKYYJ+FDA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3422758},"main":"index.js","browser":{"ws":false,"request":false},"gitHead":"24ded488077470add1fcb68cdba80fd8419b83bb","scripts":{"lint":"eslint --quiet --ignore-path .gitignore .","test":"node test/index.js && yarn lint","build":"babel zero.js index.js -d dist/es5 && babel subproviders -d dist/es5/subproviders && babel util -d dist/es5/util","bundle":"mkdir -p ./dist && yarn bundle-engine && yarn bundle-zero","bundle-zero":"browserify -s ZeroClientProvider -e zero.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ZeroClientProvider.js","bundle-engine":"browserify -s ProviderEngine -e index.js -t [ babelify --presets [ @babel/preset-env ] ] > dist/ProviderEngine.js","prepublishOnly":"yarn build && yarn bundle"},"_npmUser":{"name":"eggplantzzz","email":"pobol234@gmail.com"},"repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"_npmVersion":"6.14.14","description":"Fork of https://github.com/MetaMask/web3-provider-engine","directories":{},"_nodeVersion":"12.22.0","dependencies":{"ws":"^5.1.1","xhr":"^2.2.0","async":"^2.5.0","clone":"^2.0.0","xtend":"^4.0.1","backoff":"^2.5.0","request":"^2.85.0","semaphore":"^1.0.3","cross-fetch":"^2.1.0","ethereumjs-vm":"^2.3.4","@ethereumjs/tx":"^3.3.0","ethereumjs-util":"^5.1.5","readable-stream":"^2.2.9","ethereumjs-block":"^1.2.2","eth-block-tracker":"^4.4.2","eth-json-rpc-errors":"^2.0.2","promise-to-callback":"^1.0.0","json-stable-stringify":"^1.0.1","@trufflesuite/eth-sig-util":"^1.4.2","@trufflesuite/eth-json-rpc-infura":"^4.0.3-0","@trufflesuite/eth-json-rpc-filters":"^4.1.2-1","@trufflesuite/eth-json-rpc-middleware":"^4.4.2-1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.4.0","ethjs":"^0.3.6","eslint":"^6.2.0","babelify":"^10.0.0","@babel/cli":"^7.5.5","browserify":"^16.5.0","@babel/core":"^7.5.5","ganache-core":"^2.7.0","@babel/preset-env":"^7.5.5"},"_npmOperationalInternal":{"tmp":"tmp/web3-provider-engine_15.0.14_1635880922291_0.24438073458276","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-06-23T16:12:49.824Z","modified":"2026-10-03T10:48:44.992Z","14.0.6":"2020-06-23T16:12:50.164Z","14.0.7":"2020-06-29T22:50:03.967Z","15.0.0-0":"2020-07-02T18:52:35.110Z","15.0.0-1":"2020-07-08T12:42:49.363Z","15.0.0-2":"2020-07-08T13:58:24.020Z","15.0.13-0":"2020-07-20T21:11:10.156Z","15.0.13-1":"2020-08-07T17:25:46.233Z","15.0.13-2.beta":"2021-09-13T23:37:25.937Z","15.0.13-3.beta":"2021-10-15T20:28:51.518Z","15.0.14":"2021-11-02T19:22:02.512Z"},"bugs":{"url":"https://github.com/trufflesuite/provider-engine/issues"},"license":"MIT","homepage":"https://github.com/trufflesuite/provider-engine#readme","repository":{"url":"git+https://github.com/trufflesuite/provider-engine.git","type":"git"},"description":"Fork of https://github.com/MetaMask/web3-provider-engine","maintainers":[{"email":"david@davidmurdoch.com","name":"davidmurdoch"},{"email":"it@consensys.net","name":"rizedr"}],"readme":"# Web3 ProviderEngine\n\nWeb3 ProviderEngine is a tool for composing your own [web3 providers](https://github.com/ethereum/wiki/wiki/JavaScript-API#web3).\n\nOriginally created for MetaMask, but has been superceded by [json-rpc-engine](https://www.npmjs.com/package/json-rpc-engine) in combination with our [eth-json-rpc-middleware](https://www.npmjs.com/package/eth-json-rpc-middleware). This module is not very actively maintained, so we recommend using that one instead.\n\n### Composable\n\nBuilt to be modular - works via a stack of 'sub-providers' which are like normal web3 providers but only handle a subset of rpc methods.\n\nThe subproviders can emit new rpc requests in order to handle their own;  e.g. `eth_call` may trigger `eth_getAccountBalance`, `eth_getCode`, and others.\nThe provider engine also handles caching of rpc request results.\n\n```js\nconst ProviderEngine = require('web3-provider-engine')\nconst CacheSubprovider = require('web3-provider-engine/subproviders/cache.js')\nconst FixtureSubprovider = require('web3-provider-engine/subproviders/fixture.js')\nconst FilterSubprovider = require('web3-provider-engine/subproviders/filters.js')\nconst VmSubprovider = require('web3-provider-engine/subproviders/vm.js')\nconst HookedWalletSubprovider = require('web3-provider-engine/subproviders/hooked-wallet.js')\nconst NonceSubprovider = require('web3-provider-engine/subproviders/nonce-tracker.js')\nconst RpcSubprovider = require('web3-provider-engine/subproviders/rpc.js')\n\nvar engine = new ProviderEngine()\nvar web3 = new Web3(engine)\n\n// static results\nengine.addProvider(new FixtureSubprovider({\n  web3_clientVersion: 'ProviderEngine/v0.0.0/javascript',\n  net_listening: true,\n  eth_hashrate: '0x00',\n  eth_mining: false,\n  eth_syncing: true,\n}))\n\n// cache layer\nengine.addProvider(new CacheSubprovider())\n\n// filters\nengine.addProvider(new FilterSubprovider())\n\n// pending nonce\nengine.addProvider(new NonceSubprovider())\n\n// vm\nengine.addProvider(new VmSubprovider())\n\n// id mgmt\nengine.addProvider(new HookedWalletSubprovider({\n  getAccounts: function(cb){ ... },\n  approveTransaction: function(cb){ ... },\n  signTransaction: function(cb){ ... },\n}))\n\n// data source\nengine.addProvider(new RpcSubprovider({\n  rpcUrl: 'https://testrpc.metamask.io/',\n}))\n\n// log new blocks\nengine.on('block', function(block){\n  console.log('================================')\n  console.log('BLOCK CHANGED:', '#'+block.number.toString('hex'), '0x'+block.hash.toString('hex'))\n  console.log('================================')\n})\n\n// network connectivity error\nengine.on('error', function(err){\n  // report connectivity errors\n  console.error(err.stack)\n})\n\n// start polling for blocks\nengine.start()\n```\n\nWhen importing in webpack:\n```js\nimport * as Web3ProviderEngine  from 'web3-provider-engine';\nimport * as RpcSource  from 'web3-provider-engine/subproviders/rpc';\nimport * as HookedWalletSubprovider from 'web3-provider-engine/subproviders/hooked-wallet';\n```\n\n### Built For Zero-Clients\n\nThe [Ethereum JSON RPC](https://github.com/ethereum/wiki/wiki/JSON-RPC) was not designed to have one node service many clients.\nHowever a smaller, lighter subset of the JSON RPC can be used to provide the blockchain data that an Ethereum 'zero-client' node would need to function.\nWe handle as many types of requests locally as possible, and just let data lookups fallback to some data source ( hosted rpc, blockchain api, etc ).\nCategorically, we don’t want / can’t have the following types of RPC calls go to the network:\n* id mgmt + tx signing (requires private data)\n* filters (requires a stateful data api)\n* vm (expensive, hard to scale)\n\n### Change Log\n\n##### 15.0.0\n\n- uses eth-block-tracker@4, but still provides block body on ('block', 'latest', and 'rawBlock'). Other events ('sync') provide block number hex string instead of block body.\n- SubscriptionsSubprovider automatically forwards events to provider\n- replacing subprovider implementations with those in [`eth-json-rpc-engine`](https://github.com/MetaMask/eth-json-rpc-middleware)\n- browserify: moved to `babelify@10` + `@babel/core@7`\n\n##### 14.0.0\n\n- default dataProvider for zero is Infura mainnet REST api\n- websocket support\n- subscriptions support\n- remove solc subprovider\n- removed `dist` from git (but published in npm module)\n- es5 builds in `dist/es5`\n- zero + ProviderEngine bundles are es5\n- web3 subprovider renamed to provider subprovider\n- error if provider subprovider is missing a proper provider\n- removed need to supply getAccounts hook\n- fixed `hooked-wallet-ethtx` message signing\n- fixed `hooked-wallet` default txParams\n\n##### 13.0.0\n\n- txs included in blocks via [`eth-block-tracker`](https://github.com/kumavis/eth-block-tracker)@2.0.0\n\n##### 12.0.0\n\n- moved block polling to [`eth-block-tracker`](https://github.com/kumavis/eth-block-tracker).\n\n##### 11.0.0\n\n- zero.js - replaced http subprovider with fetch provider (includes polyfill for node).\n\n##### 10.0.0\n\n- renamed HookedWalletSubprovider `personalRecoverSigner` to `recoverPersonalSignature`\n\n##### 9.0.0\n\n- `pollingShouldUnref` option now defaults to false\n","readmeFilename":"README.md"}