{"_id":"ganache-core","_rev":"209-0d90b67080af67e57d8da1a240153353","name":"ganache-core","dist-tags":{"eip1283":"2.5.0-eip1283.1","istanbul":"2.9.0-istanbul.0","filecoin-alpha":"2.11.3-filecoin-alpha","alpha":"2.13.1-alpha.4","beta":"2.13.1-beta.1","latest":"2.13.2","tezos":"2.13.2-tezos.2"},"versions":{"0.0.1":{"name":"ganache-core","version":"0.0.1","_id":"ganache-core@0.0.1","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"b711afd4d537fb466bfc7f376a354dfadf5960ee","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-0.0.1.tgz","integrity":"sha512-suDR50miIYnIo61N2mAzl+KGANySXaR5ZvZJ7pldk5KtHEx+liNlMVYmJ+qbVxkmGJCP7x9xM88Ce+2xC4u4qQ==","signatures":[{"sig":"MEUCIQCdH7ux6cM10YIS8526S1PEZZr8uonf/T+GMdyaVt/SVgIgJ32RZ0USf+/u7Hz1BWYWFlyjn7ZY9+LybW2EE4YHTlM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","_from":".","_shasum":"b711afd4d537fb466bfc7f376a354dfadf5960ee","gitHead":"f0efbc2deb155d73bf96bc964a62064f04a2f48f","scripts":{"test":"mocha"},"_npmUser":{"name":"tcoulter","email":"tim@timothyjcoulter.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"3.10.8","description":"[![npm](https://img.shields.io/npm/v/ethereumjs-testrpc.svg)]() [![npm](https://img.shields.io/npm/dm/ethereumjs-testrpc.svg)]() [![Build Status](https://travis-ci.org/ethereumjs/testrpc.svg?branch=master)](https://travis-ci.org/ethereumjs/testrpc)","directories":{"lib":"./lib"},"_nodeVersion":"6.9.1","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.8","temp":"^0.8.3","web3":"^0.18.2","async":"~1.5.0","bip39":"~2.2.0","mocha":"~2.2.5","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"1.1.2","ethereumjs-vm":"~2.0.1","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.1.2","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-0.0.1.tgz_1490635837492_0.26290462794713676","host":"packages-18-east.internal.npmjs.com"}},"0.0.2":{"name":"ganache-core","version":"0.0.2","_id":"ganache-core@0.0.2","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"d8f37c5ae03c63d9f3048cca5b2f6474e698baf4","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-0.0.2.tgz","integrity":"sha512-c7o+GCsXc5VOYrdADmULfIcvULqZJTeWELPVmky2WjvWA5CuUVTGxE2qdSyPgH9Qu8V71ZzZ78SfYBzisEQS3Q==","signatures":[{"sig":"MEUCIAlaytCCqWP8ni5dFZKpYOQPtpMkGBQD0TQqbG1lce8RAiEA+BE3m4TQ/+YYQddKzWChCs9rpW/Cq2vNULlomoYgKjw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","_from":".","_shasum":"d8f37c5ae03c63d9f3048cca5b2f6474e698baf4","gitHead":"cb7c19f2d657adee08cb44c43c84914657758334","scripts":{"test":"mocha"},"_npmUser":{"name":"tcoulter","email":"tim@timothyjcoulter.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"3.10.8","description":"[![npm](https://img.shields.io/npm/v/ethereumjs-testrpc.svg)]() [![npm](https://img.shields.io/npm/dm/ethereumjs-testrpc.svg)]() [![Build Status](https://travis-ci.org/ethereumjs/testrpc.svg?branch=master)](https://travis-ci.org/ethereumjs/testrpc)","directories":{"lib":"./lib"},"_nodeVersion":"6.9.1","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.8","temp":"^0.8.3","web3":"^0.18.2","async":"~1.5.0","bip39":"~2.2.0","mocha":"~2.2.5","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"~2.0.1","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.1.2","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-0.0.2.tgz_1493397572821_0.3556457292288542","host":"packages-18-east.internal.npmjs.com"}},"1.0.0":{"name":"ganache-core","version":"1.0.0","_id":"ganache-core@1.0.0","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"1e84796a1907746d49549b5633320cb203af5476","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-1.0.0.tgz","integrity":"sha512-DjMyNSAyZr796ZJh3yY2C+k+enQ/SXtriT8Ac0IBVO/EYmRHj2pD4udCDnOPPwcOs5C/qOm89nCNUp2vTeE8Kg==","signatures":[{"sig":"MEYCIQCuylDmAx+z3xPuoI9fHnq9kTwzqbfUESouszmk0hqqUwIhAPJXM0T4xolTC1FMDzo3+A2XprdDgO7Z6LKWB0a1fSoA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","_from":".","_shasum":"1e84796a1907746d49549b5633320cb203af5476","gitHead":"10608fa7a0123e6faa45b6f65878018dbbdc94f9","scripts":{"test":"mocha"},"_npmUser":{"name":"tcoulter","email":"tim@timothyjcoulter.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"3.10.8","description":"[![npm](https://img.shields.io/npm/v/ethereumjs-testrpc.svg)]() [![npm](https://img.shields.io/npm/dm/ethereumjs-testrpc.svg)]() [![Build Status](https://travis-ci.org/ethereumjs/testrpc.svg?branch=master)](https://travis-ci.org/ethereumjs/testrpc)","directories":{"lib":"./lib"},"_nodeVersion":"6.9.1","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.8","temp":"^0.8.3","web3":"^0.18.2","async":"~1.5.0","bip39":"~2.2.0","mocha":"~2.2.5","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"~2.0.1","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.1.2","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-1.0.0.tgz_1498579894935_0.1414228705689311","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"ganache-core","version":"1.0.1","_id":"ganache-core@1.0.1","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"fcc0beab7945b72e0343ed58136a748743445ff3","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-1.0.1.tgz","integrity":"sha512-GAyaewVSXlwzaa8HCOuSub1VNFdBMpOfaz296ccywwbq6r1glvYktW+W8uV3q7Jh4RzUDr3B+c8RSJ5yG8UNdw==","signatures":[{"sig":"MEQCIC1bvg2VdTnorcrQj0CxwOAwlBihv2XpGZKuinIgfYF/AiBaNQ1DFoLtUgj7S3bCJrojrsDHBnI6bFoNVL2Iz3pPQw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","_from":".","_shasum":"fcc0beab7945b72e0343ed58136a748743445ff3","gitHead":"53d95cd8a5d0a4c6090a8fc0dc54abaf31158601","scripts":{"test":"mocha"},"_npmUser":{"name":"tcoulter","email":"tim@timothyjcoulter.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"3.10.8","description":"[![npm](https://img.shields.io/npm/v/ethereumjs-testrpc.svg)]() [![npm](https://img.shields.io/npm/dm/ethereumjs-testrpc.svg)]() [![Build Status](https://travis-ci.org/ethereumjs/testrpc.svg?branch=master)](https://travis-ci.org/ethereumjs/testrpc)","directories":{"lib":"./lib"},"_nodeVersion":"6.9.1","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.8","temp":"^0.8.3","web3":"^0.18.2","async":"~1.5.0","bip39":"~2.2.0","mocha":"~2.2.5","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"~2.0.1","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.1.2","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-1.0.1.tgz_1498580763609_0.6681584471371025","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"ganache-core","version":"1.1.0","_id":"ganache-core@1.1.0","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"ed673d3e87e0c0d9884e9021be4b8d0c233370d3","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-1.1.0.tgz","integrity":"sha512-CpzC1htuSYucPAGwdlYzSlQDjuzmtaZrJAnbCaF0opan6k5uR/L+TuWaN+MbPGoh7pM7Om7OjT+VUQw8ExDfww==","signatures":[{"sig":"MEUCIDEC+wbLihceuzLwFwoJ7B1mzeeCoKTMQijIMPdVf3ifAiEAlxap4trTIFTLX0b40n487FhsK+VtFHhY8rq2GemtUcw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","gitHead":"d1212240518ae36fa6d0a02263dc6f740186e1a1","scripts":{"test":"mocha"},"_npmUser":{"name":"tcoulter","email":"tim@timothyjcoulter.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.3.0","description":"[![npm](https://img.shields.io/npm/v/ethereumjs-testrpc.svg)]() [![npm](https://img.shields.io/npm/dm/ethereumjs-testrpc.svg)]() [![Build Status](https://travis-ci.org/ethereumjs/testrpc.svg?branch=master)](https://travis-ci.org/ethereumjs/testrpc)","directories":{"lib":"./lib"},"_nodeVersion":"6.9.1","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.8","temp":"^0.8.3","web3":"^0.19.1","async":"~1.5.0","bip39":"~2.2.0","mocha":"~2.2.5","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"~2.2.0","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.1.2","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-1.1.0.tgz_1503079411043_0.37517689215019345","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"ganache-core","version":"1.1.1","_id":"ganache-core@1.1.1","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"a07560720331d2507b21d3582f9142cc91bd783b","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-1.1.1.tgz","integrity":"sha512-q5HDV86aO/cAk0Lchy3o/hU+KlhOsg/Xz+VDepdpZB+B56/U/HVIllU8hXSHTUQiqG14rrlDIem3WXPZbyJdBA==","signatures":[{"sig":"MEUCIQDKyhDOBdChSyzk/BJhX9CG1YuNA4VFJTASKcbwxrT9jAIgZoANZ17pmr8za/GAAEuahJaujqIyfzTv6YpX0EnIYMU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","gitHead":"5a4f4cab2998291fc0c514d2810c105aee476727","scripts":{"test":"mocha"},"_npmUser":{"name":"tcoulter","email":"tim@timothyjcoulter.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.3.0","description":"[![npm](https://img.shields.io/npm/v/ethereumjs-testrpc.svg)]() [![npm](https://img.shields.io/npm/dm/ethereumjs-testrpc.svg)]() [![Build Status](https://travis-ci.org/ethereumjs/testrpc.svg?branch=master)](https://travis-ci.org/ethereumjs/testrpc)","directories":{"lib":"./lib"},"_nodeVersion":"6.9.1","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.8","temp":"^0.8.3","web3":"^0.19.1","async":"~1.5.0","bip39":"~2.4.0","mocha":"~2.2.5","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"~2.2.0","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.1.2","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-1.1.1.tgz_1503352566639_0.9376987081486732","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"ganache-core","version":"1.1.2","_id":"ganache-core@1.1.2","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"3beb638354f7ade4dd8ef7d56ab95d6c6808f575","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-1.1.2.tgz","integrity":"sha512-RpT4BPrbk5p06OVHgk38FfK3Vou+E3w+mvx5cdiHX/MPzrGeHUnBTRHiQut14v0kGTKFkwS+4ggXspszN4VNVQ==","signatures":[{"sig":"MEQCIAXsj16s9Wt6UVBXPZ7Vzrq5rczrmFMqJdYb15dl7Q4CAiAt+anTXL5ub2de3dP8pV3iJbR7LCoWo8Z+pMnL7rk/OA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","gitHead":"7478a3140fe622972191d5eb26943279bec97cc2","scripts":{"test":"mocha"},"_npmUser":{"name":"tcoulter","email":"tim@timothyjcoulter.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.3.0","description":"This is the core code that powers the Ganache application and the the Ganache command line tool.","directories":{"lib":"./lib"},"_nodeVersion":"6.9.1","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.8","temp":"^0.8.3","web3":"^0.19.1","async":"~1.5.0","bip39":"~2.4.0","mocha":"~2.2.5","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"~2.2.0","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.1.2","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-1.1.2.tgz_1503501189716_0.016299815149977803","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"ganache-core","version":"1.1.3","_id":"ganache-core@1.1.3","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"f5763d2624c7cde8d9a52ad6ec3bc92babcc789f","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-1.1.3.tgz","integrity":"sha512-lkYXFpVV6sqxzWHew3bHP2eTq9hIMwlelxzoFcoWcBXVWa0gZlbX9Vny0uQ6PobmuTIrnxcUoKvqll/sDiFSbg==","signatures":[{"sig":"MEUCIG0oaZKLyvf7bQ1q8L1rLTTKoXABKIN6XpVVqNam7xsAAiEA3y4dwzXj0m8oj+EwLaqR1zhOWa24cI2lTEqUVP3jMCo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","gitHead":"8a74441dec1e27fb45a561df4915e8c65891d36e","scripts":{"test":"mocha"},"_npmUser":{"name":"gnidan","email":"nick@gnidan.org"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.3.0","description":"This is the core code that powers the Ganache application and the the Ganache command line tool.","directories":{"lib":"./lib"},"_nodeVersion":"6.9.1","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.8","temp":"^0.8.3","web3":"^0.19.1","async":"~1.5.0","bip39":"~2.4.0","mocha":"~2.2.5","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"~2.2.0","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-1.1.3.tgz_1505252286009_0.07429390889592469","host":"s3://npm-registry-packages"}},"1.1.4":{"name":"ganache-core","version":"1.1.4","_id":"ganache-core@1.1.4","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"57da89f6ceee430c08f02748e43c7ba973f69c53","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-1.1.4.tgz","integrity":"sha512-MYjJlMtMQwf7KQR7mrWtPh9XTge/1/6f5UaQABegZ7HTIzslo8DZKfDWilVyVQ8BhTxSBk9f1Dym3hCwYKxtmw==","signatures":[{"sig":"MEUCIB0gTGGakSxbeJXLAgnvocId2UwpDbyFcYKHpyNwjmxIAiEAmEM9Da4guuXCCZ5CreHDUr37sTeV821vusOqXFsGwNs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","gitHead":"b33fcac8956285c11c212e2c654d369792d85b0e","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.4.2","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"8.7.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.8","temp":"^0.8.3","web3":"^0.19.1","async":"~1.5.0","bip39":"~2.4.0","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.1","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-1.1.4.tgz_1508456789535_0.9080621644388884","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"ganache-core","version":"2.0.0","_id":"ganache-core@2.0.0","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"c9e2e20bc431da9ff141efce67f17f2b46749ddf","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.0.0.tgz","integrity":"sha512-wEdCRhZPDeJ3oC12J4TUYioAd7SdounaejdjSUcNmi16O2kIx4CwBvEtNBO7wrkeAFOeUR7D0czZH6shGVG2kg==","signatures":[{"sig":"MEUCIHHgzZEv4AtK1gp7loQgcyVaM9CdBCzLzupiYOpF916EAiEA/kpIUr8jv6/Ye/7xlKGsS/WcYnHNZphVDYhQaZXgMvs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","_from":".","_shasum":"c9e2e20bc431da9ff141efce67f17f2b46749ddf","gitHead":"95dfeb541e631a8cbcf5246374facf61559adbb1","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"3.10.10","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"6.11.5","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.18","temp":"^0.8.3","web3":"^0.19.1","async":"~1.5.0","bip39":"~2.4.0","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.2","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-2.0.0.tgz_1509587563327_0.590002526063472","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"ganache-core","version":"2.0.1","_id":"ganache-core@2.0.1","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"7220434d2aeec121da0c7485bb188b1e50eb029a","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.0.1.tgz","integrity":"sha512-yUKfKkizV/902bEYA5dus6sbtWU0fZPSoQ2pihigy2noztvfSBsNfHeYq3pgC+yLAZJ0VfHuOC2SquGkR+i/xA==","signatures":[{"sig":"MEQCIHxyoOBiL7YJyvbcvZSxUVr7u3FIqNTYsWkkT4Cz5Ta2AiBtXcOomVtABUFG/0+xXFvdsWW7CbmI4Izi3KVcCoUwxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","gitHead":"56520822f7f27a795c5df016fed77e82732ac4c0","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.0.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.18","temp":"^0.8.3","web3":"^0.19.1","async":"~1.5.0","bip39":"~2.4.0","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.2","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-2.0.1.tgz_1510690447912_0.8000803666654974","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"ganache-core","version":"2.0.2","_id":"ganache-core@2.0.2","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"b5310b2b50ce06306a64fb282151b2a1b31b464b","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.0.2.tgz","integrity":"sha512-hfmfqwWDT7zLPwSmAHXExCP8S97yjqGaT7KS93tKj4DY6beU8na46bkH1GZUb02DKXqHC4deTv85xA1yBwV1Lw==","signatures":[{"sig":"MEUCIQDqWz5a7VJKrlXK2FN4OjjT+0HsGiei+UZ8zjvwTh3j+AIgDD7pw+0usnJ6Guba1hLFuzqX6AF8U51sttiAm2aBDcM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","gitHead":"d59a603f9f466a623e7a4a9481a34953245b3b74","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.0.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.18","temp":"^0.8.3","web3":"^0.19.1","async":"~1.5.0","bip39":"~2.4.0","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.2","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"~8.1.0","fake-merkle-patricia-tree":"~1.0.1"},"devDependencies":{"memdown":"^1.3.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-2.0.2.tgz_1510793491783_0.21878417604602873","host":"s3://npm-registry-packages"}},"3.0.0-beta.0":{"name":"ganache-core","version":"3.0.0-beta.0","_id":"ganache-core@3.0.0-beta.0","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"1691fb80ae08ba165831380c5566c948a882d82e","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-3.0.0-beta.0.tgz","integrity":"sha512-GZOS27aZB+8LDyYCBmcl2ggkxvn0tcwUw56Oegoje+1bcPrmkxw+6ySAnAp3i6aRuFa7K8zcWCMKXbsytkEHyA==","signatures":[{"sig":"MEUCIQDLCoJZmDpNFJG1D9iVobZkj0yzF6wzVCixKn9l3i/q1QIgEOt/5MsoAX61ep4pql3UsK2bUceMc/KgeIuOrj70yng=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","gitHead":"8595e40d34e7c807fc0f5f5a7c8e5e6a40834186","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"This beta version has been deprecated, please use current beta tag, instead","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","solc":"0.4.18","temp":"^0.8.3","web3":"1.0.0-beta.27","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.2","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"git://github.com/benjamincburns/provider-engine.git#pubsub","fake-merkle-patricia-tree":"~1.0.1"},"devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-3.0.0-beta.0.tgz_1516077772064_0.12263176776468754","host":"s3://npm-registry-packages"}},"2.1.0-beta.0":{"name":"ganache-core","version":"2.1.0-beta.0","_id":"ganache-core@2.1.0-beta.0","maintainers":[{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"b5b97baa278b45aa7e67d7ae8a270f69c634ef05","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.0-beta.0.tgz","integrity":"sha512-Ajt0vx99NhgT9YvijfyX0ddL/Ip9YkZeWqgCEDq4Zs9pIlFRORHNfCK+T4A5yqupy3AJd5bEfzSsyGLZQJhxuw==","signatures":[{"sig":"MEUCIQDMKIDZ4Xc5qfql3NOdvjBbZMBYVI/5XqSdmYguatI+PAIgXTSGUExWagne3jUxo+X1k2yxVM9S6C8nK85drwUTEqw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./index.js","gitHead":"372f3c24e7404d922dd4837c9754abff9e751e77","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.18","temp":"^0.8.3","web3":"1.0.0-beta.27","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.2","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"git://github.com/benjamincburns/provider-engine.git#pubsub","fake-merkle-patricia-tree":"~1.0.1"},"devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core-2.1.0-beta.0.tgz_1516673457060_0.3064995736349374","host":"s3://npm-registry-packages"}},"2.1.0-beta.1":{"name":"ganache-core","version":"2.1.0-beta.1","_id":"ganache-core@2.1.0-beta.1","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"5597a6d2a9a918683f80be7c219f077077a1929a","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.0-beta.1.tgz","fileCount":73,"integrity":"sha512-Vag3VCWDB309UUoCCjn8r98FIH2ME7fKxlOuGWQ4ld9knXbF9OW9bjGT8FbOO4GxFDUycOvgCyANpUcaGndv5Q==","signatures":[{"sig":"MEQCIGZfQPBs1oaH1vSdOYlDPTf5Zb/DwmxHuRseD7+nosy/AiA7MJ7m9B18AvZqDPn/xe5h2ICo2yARsRQ9SdwUTyNmMQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":316329},"main":"./index.js","gitHead":"7270ef6d8b914c099b47d292f86180106f9d77d3","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.18","temp":"^0.8.3","web3":"1.0.0-beta.27","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","lodash":"^4.17.4","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.2","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"git://github.com/benjamincburns/provider-engine.git#pubsub","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.0-beta.1_1518581013399_0.06768097413364527","host":"s3://npm-registry-packages"}},"2.1.0-beta.2":{"name":"ganache-core","version":"2.1.0-beta.2","_id":"ganache-core@2.1.0-beta.2","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"901b9c0ecbd916c3f96d3416c48b4fc6bb752906","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.0-beta.2.tgz","fileCount":73,"integrity":"sha512-tXMAkG+7t7mgOHOgBvuWdQcKCaXH6vz3Gja5aiV4zKkOfls1n8yCQGDLn8GDudVOGKRK5O3g3KsosN29zgC+cw==","signatures":[{"sig":"MEYCIQC4/y7s0hniHOl+tOVm8sLgJZwNwfZxh62DujbPtBwX5wIhAPKdPbJuE83xUjsnH4ERq1/k/EGyAubuGIt4arHEGGnx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":324773},"main":"./index.js","readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v6.11.5) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes no parameters. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","gitHead":"203e5831e666746fefb8b4b1f5e76bcc0de93157","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.18","temp":"^0.8.3","web3":"1.0.0-beta.27","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","lodash":"^4.17.4","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.2","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"git://github.com/benjamincburns/provider-engine.git#pubsub","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.0-beta.2_1519726376102_0.4071996050133322","host":"s3://npm-registry-packages"}},"2.1.0-beta.3":{"name":"ganache-core","version":"2.1.0-beta.3","license":"MIT","_id":"ganache-core@2.1.0-beta.3","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"07c20326520a7db0230a54e9c2ae21aac26ae2ca","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.0-beta.3.tgz","fileCount":73,"integrity":"sha512-zeUgjkERe6kI+5X9DP4GJBI992HBQbF8OijPlxHdexllmsbpBWh9NZslB9tnEgT9ttavPyWQ0FsETKwgVPg1nw==","signatures":[{"sig":"MEUCIQDEhyGeG96fZXLS8q+Ue4+z4RwhWvSY2oi2m9Seiolb8wIgb+tv7gNZcHru/UlnEciLICBvijDkDSo9W3UwJdwhke0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":324856},"main":"./index.js","readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v6.11.5) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes no parameters. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","gitHead":"184989331fb5f86dde8ebfa60700bb69a2e3eb6e","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.18","temp":"^0.8.3","web3":"1.0.0-beta.27","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","lodash":"^4.17.4","levelup":"^1.1.0","webpack":"^2.2.1","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.3","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"~5.1.0","ethereumjs-block":"~1.2.2","on-build-webpack":"^0.1.0","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"git://github.com/benjamincburns/provider-engine.git#pubsub","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.0-beta.3_1519727367069_0.11496549649142862","host":"s3://npm-registry-packages"}},"2.1.0-beta.4":{"name":"ganache-core","version":"2.1.0-beta.4","license":"MIT","_id":"ganache-core@2.1.0-beta.4","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"de088176cc09895c4f4ef155d7c049e945f95307","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.0-beta.4.tgz","fileCount":73,"integrity":"sha512-rB9P9yIry7do5K/CqTY8JiF5ge+iUStqoUMCKwmjkPnLzGaddSP2mjxyKxfrKsY0wO7kMoReexSGpxN3foFyYA==","signatures":[{"sig":"MEUCIQCsrT4L8a8Fcwm6lfB92xQBbMFIGfqk26x8vgjvCVpFhwIgWz4HAq6dzEhYYhvyV51NjUIpwd8SsVkFmRHKYyXVUig=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":324747},"main":"./index.js","readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v6.11.5) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes no parameters. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","gitHead":"08842b51fe86259993b685c8a9b245cc7686aa76","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.18","temp":"^0.8.3","web3":"^1.0.0-beta.30","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.3","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.1.5","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^13.6.5","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.0-beta.4_1519729004691_0.015841562104802476","host":"s3://npm-registry-packages"}},"2.1.0-beta.5":{"name":"ganache-core","version":"2.1.0-beta.5","license":"MIT","_id":"ganache-core@2.1.0-beta.5","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"933ac4d86afe2f584211a161fe82abe9a7b0ebe4","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.0-beta.5.tgz","fileCount":73,"integrity":"sha512-dRNJFry1PguagwgrYfbuhEKVa8j/EaY6AHOAvhWuCa3H+H98Lc0YyNNjdgF0qht+IKdgcyXlr24ZNQi6LgO66A==","signatures":[{"sig":"MEQCICBiYGfQGXq0HaDuyeLRCb/n5XmbjEJheqr2GPjacSvkAiBE05n3J9/S45asQfQJgnfrSJCdm5fAdypn9rpglLHd4g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":324753},"main":"./index.js","readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v6.11.5) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes no parameters. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","gitHead":"0135a2a99bf3c6d92ed0a5dcb15dd23814b6d783","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.18","temp":"^0.8.3","web3":"^1.0.0-beta.30","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.3","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.1.5","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^13.6.5","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.0-beta.5_1519731990365_0.708450994809473","host":"s3://npm-registry-packages"}},"2.1.0-beta.6":{"name":"ganache-core","version":"2.1.0-beta.6","license":"MIT","_id":"ganache-core@2.1.0-beta.6","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"b46012babc0f57135511acb91de09102b07cb686","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.0-beta.6.tgz","fileCount":73,"integrity":"sha512-ZbMTD7XRPXtzb2dvIOxtM1xHAzuq3hZUokVzIbuFv4Xopj29h+DOjfU9+YVRJDFOMo740dBA58M8yBOQe06QiA==","signatures":[{"sig":"MEQCIGiUM4VBQIFqFtsUsuXn9NmMHm4S7fR9x8lsGJi3rtvnAiA+EzpwLl48GezdIHQbI/Y9rBLURMddPCM9wBvBhAk8NA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":325125},"main":"./index.js","readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v6.11.5) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes no parameters. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","gitHead":"f0e02f86cb3209d31ceb625e137019a377bde26b","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.18","temp":"^0.8.3","web3":"^1.0.0-beta.30","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.3","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.1.5","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^13.6.5","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.0-beta.6_1519736968330_0.6223362266735994","host":"s3://npm-registry-packages"}},"2.1.0-beta.7":{"name":"ganache-core","version":"2.1.0-beta.7","license":"MIT","_id":"ganache-core@2.1.0-beta.7","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"038ed0292a4129fdf6394fbed629625501d8dfa0","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.0-beta.7.tgz","fileCount":73,"integrity":"sha512-cZ5kN/caKa7GotK13N/osDiJnFuSOAYWpKu+tcX1/YgEFIjND+eChkXZ3dgPrIis281EKny/Ag/XPMTGv7Nseg==","signatures":[{"sig":"MEQCIH2tO6tM1Vw4euyc5Kd73QmmtrF8EvcrcHBz+FWa+8BIAiAMKnvCRrCOY133fqUn2F0NY0RqY1C+0SQ8+Lzam4rTQA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":325125},"main":"./index.js","readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v6.11.5) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes no parameters. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","gitHead":"13f5d65304cf876d945dc059ea26b46f02fa85f3","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.18","temp":"^0.8.3","web3":"^1.0.0-beta.30","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.2","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.1.5","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^13.6.5","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.0-beta.7_1519743199405_0.1390248879468421","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"ganache-core","version":"2.1.0","license":"MIT","_id":"ganache-core@2.1.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"afe4ac8d5a2b5ed3622dd82d530acced78d5fb94","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.0.tgz","fileCount":73,"integrity":"sha512-zUO61d23XHBCYOUjEQjIuENcfa6EQNBHKuG2oXWdTdGyu5Gbm4fXX9klZ2jjl9ZnBD2T4BaeBXycsLmL0S/d2w==","signatures":[{"sig":"MEQCIHNECTvJXwdXRYxwGLVJ4dtMnlpivOCdqlkLZnIg7zlfAiBB/BPcBVj5WVY33Vg7aucPGl+YubKP+tQWNkpmNyRfsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":327343},"main":"./index.js","gitHead":"3e4d25d24fe9ccabede19b22d9ecd6004bdd8f73","scripts":{"test":"mocha"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.18","temp":"^0.8.3","web3":"^1.0.0-beta.30","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","mocha":"~3.3.0","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.3","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.1.5","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^13.6.5","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.0_1520387574799_0.9362200868657191","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"ganache-core","version":"2.1.1","license":"MIT","_id":"ganache-core@2.1.1","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"9144283ab32db748c9d0e776f4b14e584cdf1369","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.1.tgz","fileCount":75,"integrity":"sha512-c4KJg3/8hE5Kz3/c6WL/gWl1trtZmklo88irgu/PKarifcoSljS8FZaF9scojb0JSGLV0WbwlRgSM/ZSkNTTRQ==","signatures":[{"sig":"MEQCIHRYibfG4vFP1Ac1PBlGqwTxsbNrDNsz3P/SBCKgkCPqAiBWBfjEbaW8j7LUHq9guUzwu2VELJ5h1kYMg3T1HnuF2w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":336277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbHvEWCRA9TVsSAnZWagAAzvAP/jieVmX4cBms5mGNF/jX\nakqCz8hs75jvIBF9Aaqh0L3nXniH2/LAbf7qFOCn2ExC0wgJorAKtaidtFwn\nLH1cAThfr5PBVtokWKP1ztmIHJ01Cb3uV8g0jWXc2N9zvsEGoPvO+YTSkMCK\nmgfXwi65J4WHYYsqqRO0hwBd5CNrZoopKVmZ/9seoboPoS0HW7mosGGm9wKk\nfovZ27blmcDtQT6OLP/GjPrOnpx8L8KRFmRh+z3uIqynUEATEvrSoPN91MJC\n9a7ajWTETAfm5gjqGNCofJ5k/cJmg4x5jSSKjwiV1svz5hxeL000sUjIWhlL\nHp81iZsizMOOTE6w2FQ+2Ep6XMdhMbGGhHioL6IHXFExZPJ7kq9Ho+VtJ6of\nexHZzLkzP1WHvDnfGg0wcznQdtdQ3nV2YA516iXfpz/DqZ77RCztvrE1shrf\nyHNFffQtJm4CSEEZCsIfvozUzZxxk7uqL8g6GyTysAORDwtKBGc9KDjTsveQ\nGSXRB9TN7y2TJeSpQ9r4flPtKUiMl59rrMup3z1haSkB5PRuCzKH6kOTdTpf\nwHcxp2PViGr5v6sKIXUC3gr/DEFGmnK5jsJsfl2ZEKC2NJJ2BbAtdt0xS/rB\nmc4Yy4VyMP9aY0rCWlYo5se2FwWxNOoOrQSJv0rLJaf6cCobYDAiwmo8pbPc\n4OGa\r\n=QfUt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","engines":{"node":">=8.9.0"},"gitHead":"85f33146ffe8eeedc3efd18609bd9624ad5e4140","scripts":{"test":"mocha --check-leaks --globals _scratch"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.3.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"8.4.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.24","temp":"^0.8.3","web3":"^1.0.0-beta.34","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.4","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.2.0","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^14.0.6","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"~5.1.1","memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.1_1528754452836_0.3759808664482296","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"ganache-core","version":"2.1.2","license":"MIT","_id":"ganache-core@2.1.2","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"78810adc028a54f0dd4f3502c495917822fcda57","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.2.tgz","fileCount":74,"integrity":"sha512-em+s17KNr6VjPSc5uN+kDGjtScEqW6vKYWBVwjtuTbKLRMyKL90bs8qBm2VHLfZvErOymhNomILVKIis5Vn/mA==","signatures":[{"sig":"MEUCIAPzcjjuzULVup+qRHslHhun7kz9Lr/blgCw7ihlQzUZAiEAj9MC0+YB8AgR2hgxKIvZ7ZnYoJEQC3a4uzMJYL9IOdU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":336185,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbIW2tCRA9TVsSAnZWagAADlQP/2zYxzIE5HdSmxJo29rI\njxJOLVzM2v99bxwtK/EtkMoSBx1NXkgaFBfshg2pC4weN6NMwYffVHYdRqmx\n2ZJ9WNk5lsYrg+LLt+UVO2Ns8LgwYz+ZxJ9nv/1TQdUooU9M7UOfr+Ia5Dpv\n/dspwWggTGmXAi9lLD0UvslX/LJYE2lTdKrHZHsZ2y1QTaoaWSzLSStRaMvK\nojJymbIuAjcuS/sc9pM2MVDtk9N9Ulo+RrjWE3Xmnvy+koYb+HqY1uooZQ6D\nvrvHBsGR2wV9sviyjkQt5BhOk5+nXRv0efjvjkKwvJe9RyEtHpgFhM6NfCa7\naIhVLYeeeRi46fmY8N8UYq1GzL72h5pMztoD8W65uuy8bNGVkXVL5OE4KFkU\n2K/7Bk1oXFUtBOOHpuJDhJ4J7OyRmhhVdRiv7XtCmaugRBw6CBaaW2Wl6gCM\n8TOmaE51C3ds1q3TELZgIz8mfSHeh5zHHzSAErQOTYJ02unMYx9d1+7uNrpQ\nNU7ckwN3/Sp+rR8Jihrjv/7CCRRVOjji7HAbi/7sZC2HuraHTKtYUxfC7g1+\ndAp5rhkG5ij08oRjW0Tqwm1m6Ve4Mr52n29s8eTdHsqRD96g99RStU/91mWx\nHXSab6nj2e89MoCR8tAO8mBuZzchzADcJPauLF/hmoYb0hL6xBX6zMZOR6r9\nWIQE\r\n=j3RA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","engines":{"node":">=8.9.0"},"gitHead":"99b6ddfb95013e3ef265aff0556a9c6638521b5a","scripts":{"test":"mocha --check-leaks --globals _scratch"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.1.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"10.4.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.24","temp":"^0.8.3","web3":"^1.0.0-beta.34","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.5","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.2.0","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^14.0.6","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"~5.1.1","memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.2_1528917420359_0.9675053710600345","host":"s3://npm-registry-packages"}},"2.1.3":{"name":"ganache-core","version":"2.1.3","license":"MIT","_id":"ganache-core@2.1.3","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"029c1cd78ca965e6c8036fe98d842fc2a5b0dfc4","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.3.tgz","fileCount":74,"integrity":"sha512-fHDXzzcaB+jZC4q3HnQdcSj/otcVnQ6ddyqmtFtcyv29ET/44nXL5++3MmYBmAn3iLxV8PUgL+meUpm1aim9kg==","signatures":[{"sig":"MEUCID/MkTCC5ig1LoB84RkdrmeF04taRvGlDhiRCEx85gDgAiEAjgcd52DQig/rnKnS2t8/Ca3QYXsXr9WQomRXVDBi2WY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":336239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbM+fNCRA9TVsSAnZWagAAe9sP/RiFpwbQgfrYqBqxsv6i\nwithPK39ZpkhJ/K2Rp9jJz9JewgcBF0l9DIttD4rBnCktdzDMZs5/9F+UMRh\nPgYgzyvA9rnu/VajFNoCPvzFpN1X2P79bmkhDYIekk6nluMwTT0xXQO+prRQ\nTQ2HVTH34aclgUA8e7djvICsBuzvdyuTSZ7svNZ+1lEKnODSkR98WuGWVFlH\npViSHLvXWphPDToNuGTslS7L6BGm85SHZv4DO5S2bjOt1oS3k7EufnOEqS99\nfBjNPNRmGqxw5tYs1aQotGV6peFxJeAMSX2p5GkiP4eibVMDYVtmUmSJ7+n+\nU6VE/BhqGUy6oLGzI14gz8dpQBFtUFxjBW/FKJE9vZObTx2+4pLdWsIXObt1\nlkH8YVKMCypYuJQ8ad7tKwLvHUPKf3TNSUqeT1kmQMDUJtJPZS5J6aI83oXW\nISXnhwuX3390ELIf1lUSuSE+FcDD0UPUNRhjAGwI/rTIEp9vkY+sdKmXCagv\ntym/hb5yewoo4jA3lCPtaDTDc/tpPloTVbf+SP317+tJGVdeOOmquRsyj8Dz\nNNXvFWTW2FHa7EvI518LPv8KyKKDEvvbDXPeGAUz1WAmAAMlUb0yaTSGG7tJ\nXrqvKECZnmX7Lu7DmNZYEBCGLqtd5lkxxwuR/w+xmy+pFwKwExz6T7yQe1w6\nT7Ob\r\n=GHQJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","engines":{"node":">=8.9.0"},"gitHead":"6d20dfd30dd88568a7c025338577cbc3fa16a86d","scripts":{"test":"mocha --check-leaks --globals _scratch"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.24","temp":"^0.8.3","web3":"^1.0.0-beta.34","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","request":"^2.87.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.5","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.2.0","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^14.0.6","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"~5.1.1","memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.3_1530128333267_0.7162397250195258","host":"s3://npm-registry-packages"}},"2.1.4":{"name":"ganache-core","version":"2.1.4","license":"MIT","_id":"ganache-core@2.1.4","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"54db35d9afa325d0d8587fd0e12396ae90c39772","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.4.tgz","fileCount":77,"integrity":"sha512-wYpfArYA/pCgoQtsb5V8E62b580MnQfMQHuldWToc6Fa7Z5r5u8eB0oftxbrgbdJkR3oJkNykfc2clq0hgZfWQ==","signatures":[{"sig":"MEYCIQDCkcs3KJSWXfORXVruv3UB/07mx5BUdk6V3RyL31AAjQIhAK7CBgBuqnXY85nq72jRetWA5VDUhnzRcviftDluXBLD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":373879,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPqIbCRA9TVsSAnZWagAA2TcP/0TxBMr2DWymfi9CcMns\nWlKfBtT+yAqTWo8VdSCJOiYD6sBbcnbxXLBnbxfDSrWdxd2hSukEGKrFbq2w\n0xeOx+z4Ko4MG6+XRrilq3IKqYn8GC2lmrrAnsfT3+AvavYcG1AtQ5SBCtva\nOxFCiQzVWuzYckh3adhF4uQ4XbaHJBSyv0v/M1ccHmdQfjN/udlCZs+oAkYX\noOtcpi1F7BeyZHRvsOSwcNI0+m+MEMMhehSmfOESppCwKV1lSC7kZ8zeUI7s\nPQnXRfu1ObjnyAxV5nMC9okn8ys2eOhH7HFnZ10YZXsjcapF/UOH1nUt5PEJ\nyC9zt3VNNCL1u5SysP1th0h9BhLLvGDu74gy8+k9MSYaogFwGhnyOApwbHE2\n1xt5q3YCPQShvHVLT744kox0GZpCkpQz0mzqcldK9/25coMmvmqA/lrZShO4\nxDimW5Ku6ypXKMX2W0EOqfyAyODzBhe+d+0/+VoO/vvUQXUeu4mugdbGmyVx\nJhw5b5PNa23wpm7xah8euHTN25ETWjy5lgJgFUXO0hqEohw4UG+d1STLMYUh\nmw/jO59/pWHD+44egcrfnf6uHl3unaeh9Q10sU4ZD0UOxCl8TzOMrHyhOQwH\nhKYYmSc87arcCcYP2tAkplUD9wBNZohMLU+Kl2Nv6NBfr963WhrP3V5WuS0x\nozCO\r\n=a3qi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","engines":{"node":">=8.9.0"},"gitHead":"de1d26416d4fa9876f647f9d2db60c0f078dd16f","scripts":{"test":"mocha --check-leaks --globals _scratch"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.24","temp":"^0.8.3","web3":"^1.0.0-beta.34","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","request":"^2.87.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"^1.3.0","ethereumjs-vm":"2.3.5","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.2.0","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^14.0.6","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"~5.1.1","memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.4_1530831387494_0.49967008425843407","host":"s3://npm-registry-packages"}},"2.1.5":{"name":"ganache-core","version":"2.1.5","license":"MIT","_id":"ganache-core@2.1.5","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"93609216c1d5772cd2e79390c7105da13cf2477b","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.5.tgz","fileCount":77,"integrity":"sha512-PuHUfISgrQknb7JpspxSzhpoYfqBWoOdTBHQj/81gu6YypRUHzD2Z6gZmFDxDzG30MFElEHp8JtexaGdgq9iYw==","signatures":[{"sig":"MEUCIQC2Hu850aSAEy06NPce2msfCWv/5oOWUZXWI6t5kdNUhQIgRNCC+m0JOYw2keIUDmzLrnnniOR2xO+x+RydxBodigg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":373878,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQ+SUCRA9TVsSAnZWagAAKogQAIiVLkaCCV5RAYeCy1/n\nTr9RVEeOTLh5jTL5BZ21ybyUNvPOwNWwzH/nhmnG8NSUkIwxrkKf3wZiR+qW\nsuxpqF6cwnPUWgmI5O+ytvx/OOknl9p+qNm4ko2myhqNEoHWYBSobqUC70Yp\n8BPNdYYmB7M4IICgOPUUOjGKAWLSZc7oogbGQCleGge6P+mVaxDrDhrMF4TL\n5mrNK2/9m/r6J5/WUZejcwHAEy/VuSCaEEb1Wa0N0mf2xEipT3D+pf1eSd3r\nG21bm3NukRWh+8cWCI5XLdR9fI/B4254sFhibK8chdExagNXEwG5t9Y4X/zM\nfINmwhO1yfaGv3Ju6dkn7YaNdqgro5DjkvRVJYHywspkfxBikILQSQp6jwKO\nPaudZYCqAPsq6TsmRn6F0fpih+hBnx81ShSQWD+LUorpbGlOyjOdlLAr6+gz\nwSYBczaGyWNj0+ACyAMQKZy+Lp1fa23UO2UA1vZ2uQRiGdaK8fa1udVYFjfX\n58EtxnWJqvdLG6OZugM2THLQNa7hVK33yslGq+qHWVlwvd93r82Wm2hJdBmA\np0TYSVrn3fpGnsTyhmliF53G/SqFm8FVh0kI60EMPQuf4UpYvkFkxbyMzZPp\nb9WeHLjlGmEQWyOVvXC/KCuKLXuQxGQuCFyM4WOXDDvZC0iyBuqRtwNrwN0M\nxcOX\r\n=8m6r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","engines":{"node":">=8.9.0"},"gitHead":"56a4f6c34932851c0616819d2dc8c4af1c13b2c9","scripts":{"test":"mocha --check-leaks --globals _scratch"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.24","temp":"^0.8.3","web3":"^1.0.0-beta.34","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","request":"^2.87.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"1.3.4","ethereumjs-vm":"2.3.5","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.2.0","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"~0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^14.0.6","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"~5.1.1","memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.5_1531176084130_0.9263871834495414","host":"s3://npm-registry-packages"}},"2.1.6":{"name":"ganache-core","version":"2.1.6","license":"MIT","_id":"ganache-core@2.1.6","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"056387985fb54a06fdd58360abc9cd2ba925afc1","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.1.6.tgz","fileCount":78,"integrity":"sha512-GmX+2mqRLoIocJHVklleS0Kd2iZvNZrDPDxZgxWbW6jvoIIkd8T4T6OijEruFcpmhtYSlhNjZRok+eJdGxc+oA==","signatures":[{"sig":"MEUCIGTU5dTqzsFNz1sdQwQ6UTebDMokpkTWHHXDmkRNA7YPAiEA6qzbg/97Z904ZuzsCvA0p5H4gHkhR7vrAb4gktwj5Vk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":567625,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbYiGtCRA9TVsSAnZWagAAOzwP/2ysbYyPgO+pHZAtDuUd\n4LDOlTtM53cFbLreAdFi70apXE2VN2xv8IW7RXV2hfuXFHTZunu6sBgshMob\n/x1WjRaqyY0alFRxb1sZ/DHfXjipFADbmU20GE0dH0xErsq6U+l0njrvtpzu\nD83N0FM+EkC6bcR6a725MEvD4gOcJZYT9i7/Eh89DILormXJgKluwBrzqNbL\nbbTYhDSx32mCrRfNri/AjQE26CVDKh9rsAsDO11xSX2mx9w1EzgkOEZcbfUl\nzaRAAJjCz+chE48p9qj+UvtiYsYWmteA/cEDOkAVjbVqhmGTXfv7Er0INWp6\nfI3QlAK+VWwzcBWDYZLjBOLZ6kxO+/iJ9WVHPpBfuzhQKBdDzt7BZkt4czNW\nLZwVAom2kikL8SnliJ6P9Px6rVvxlqzGRCCt37mxpi8kWRs2jzyTn6hWkqiN\ntrAZKnDWstoPoAoSAqddutdfTr1c7xscEzctIuojr5ejHGi1lLKNSeJci21I\n9dpFq7e2UB6cDhkea18cWRFHlI20PFfkEo9LXzfHCssLFn5m4DgEHo72Kb9I\nNtlK2IPTn5OIpDeUd3JMk5Nt8KiEqL3T0WA7haHRz3HWBgDtqf6ZSHQAtUC2\n2/qxlgHvqYzGmUb8X3eQPcAOkGh4YJ4WXXPdV7jYMQpbUttABW52qZtitOgK\nkS3k\r\n=n1iU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","engines":{"node":">=8.9.0"},"gitHead":"030a0ecd8e347750d1686189478dded9559a5d96","scripts":{"test":"mocha --check-leaks --globals _scratch"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.24","temp":"^0.8.3","web3":"^1.0.0-beta.34","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","request":"^2.87.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","prepend-file":"^1.3.1","ethereumjs-tx":"1.3.4","ethereumjs-vm":"2.3.5","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.2.0","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^14.0.6","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":true,"devDependencies":{"mocha":"~5.1.1","memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.1.6_1533157805356_0.4006340770553434","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"ganache-core","version":"2.2.0","license":"MIT","_id":"ganache-core@2.2.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"a5c61c828d4a8638dde786c38fb833ec7ad7db58","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.2.0.tgz","fileCount":81,"integrity":"sha512-43TpR9TUHJ8WIPTooAbnTFprNH0atJjnUsS/8ppn+Bbhh1vSFFkMRUrYqnkkZ33XIPenkNXlzpF+50BAIdSPYQ==","signatures":[{"sig":"MEUCIQCDyR8systIh2hhkog/ECEPhDNyn090fYy1z9zzTs3USwIgf74TY/IajZsRITAgNvAQxtRzLI/NsHkV1L3hmvBUQ7s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":585504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbc6QdCRA9TVsSAnZWagAAnxIQAJIERbVBpT84IdcjkXbe\nhjmwUOjhtECDwBelSBlhnSpmqm55EZfx0B7AxSwR3z4Ikq+uQrMZJZnEIJvK\n7aNxMTsEIGp1G9sIYUDHYR3cIYGrqi8OpdWQekkjpDhAerQK4Akn9tATJsjy\nqV+Q+30gliKahZ7siFB+F5OV1I3siwSpblPp4ItdN12vzcmmvBHuEf32OMXR\nVlrJSy2y7uWnQiIurOKzE/Cjudj8+IQF3ytatuHiVQ1fk6VTqE9KdaqZos7I\n6fWIy+N9Qmoq8Duo33J+MVF+L3CP3Ud7W4A7ncMVQ2DeY8CwZ3GZA/yId83b\nuK8rG+QQ6JhhXek5epnxyOfHcTgVdgHfZB4U3x6xDXhlN4b5UbMEpTA5M/Km\nyTBXx9LxE3sUpBYTC69tMsHMMo9poAOzO9FSWjnJ/BqSQIO18sia8nlkq23w\nm9OtRWw5+1tsKCuqej1bGWag7u63mZiO3D67WqKV1uF3iB2Wbcug7iBWsinS\nj9oFb8YE7wir2xoO08YOXF4mUiBsWjHobZa1oLQMwGjMnmQ3xrzBrdGRqCfM\nl8FbzV7Pdcs6Xqiu19NEcGpQTJwHuX2tSTVeWvjaJLo84QpWNwiEDuUAFcY/\n8TXZrTTanaQ3s3rPkVhZOdpNlJuLcGWBZHUyTo3gZdLHt+4WXF/5sLMTrElX\nMkDS\r\n=7+FI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","engines":{"node":">=8.9.0"},"gitHead":"04ff651992cda51c00e3eef075f3a06353bed6d9","scripts":{"test":"mocha --check-leaks --globals _scratch,sanitizedData"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.6.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.11.1","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.24","temp":"^0.8.3","web3":"^1.0.0-beta.34","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","request":"^2.87.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","eth-sig-util":"^2.0.2","prepend-file":"^1.3.1","ethereumjs-tx":"1.3.4","ethereumjs-vm":"2.3.5","ethereumjs-abi":"^0.6.5","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.2.0","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^14.0.6","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":true,"devDependencies":{"mocha":"~5.1.1","memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.2.0_1534305309005_0.42124718338411915","host":"s3://npm-registry-packages"}},"2.2.1":{"name":"ganache-core","version":"2.2.1","license":"MIT","_id":"ganache-core@2.2.1","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cgewecke","email":"christophergewecke@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"c0125d77d3e28d627a812dd002dac21e1d2cc8b7","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.2.1.tgz","fileCount":81,"integrity":"sha512-JMLZj7CKxtC5M0qceQYn8FLOx+CZyfISpSRfGdwnKy3juXO8siSAodjq8hviqUY1J0tEdEGqvNm16wSUxtiRjQ==","signatures":[{"sig":"MEYCIQD8GFbJgE6WdJfN6TDSTu0a0bwGnUu/KUdTb+DRtz1VTAIhAINsO71ULuYsB5G5LpANjkWGpSed0d8XbzpzrD+qbhMF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":585550,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdLLVCRA9TVsSAnZWagAAi/oP/ivamlpNCbeBOuEqM/zg\nhrq/YI6Lzvl0Sov62NKRKI9S4Zn5Suh0MKhJOQS8vi18sKl6iXXCANyQJVDo\ns6VuBMTTQyNlq8TbNMh09QG8BRz1USbjFtxFoZIr5tqRTMZGZhmNsCeMDbiw\nNuNOkf8Eh8vUVt7eRSJlDauRew3Aia1ySIxQzkE4bXcbUZXddd+OvbhrAHA9\nbI7Tdi4Y5m5DVUTL9Uee/CcH7380TwI8nJdFG6zG+RWsD4JSBNxni0nag0yg\nLj1YWNIgMhRGVVa4l806t4ZblCjXlJAnA3azFa/uU93B5RNRpgsOv3tgKwsI\n1C/rNnG6UcX9/0zMrtuwcS9WGsM72wzS4RY+aNe4/A7++ZBphXVebq/iYf8/\nX6ghK+CAG5FXwYYapNxFohgajsr3lgBw/WXaE5KcQzh3H+d7lZPh4g8IYRf6\nbYnEHyt9FrnuDDILH4wDISpVrL9ZIYz1B8KkTY91s9Ohs+gBEaK/CTgL/Xmk\nnFzeEX+8O/wNiCn1Knzfrd6jG0UXbwLfFaS7VzMBoByB7aMRDIrNds7UPUtC\nFXJ9coyP04dCvvTqFBc23qd6iL26DaPDtNraKe/U5lYZHpj67y4M3p/Vvbtx\nob/m70GVdxD5Go7TPsTpmgaB5UBOe1IpsMyWFzaixEb16nMcM9ow2q2oTM3d\n9pRN\r\n=+zzg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","engines":{"node":">=8.9.0"},"gitHead":"119c78be92461be1505924977f2d0032bc7be75d","scripts":{"test":"mocha --check-leaks --globals _scratch,sanitizedData"},"_npmUser":{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"5.5.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"_nodeVersion":"9.3.0","dependencies":{"tmp":"0.0.31","chai":"^3.5.0","heap":"~0.2.6","pify":"^3.0.0","solc":"0.4.24","temp":"^0.8.3","web3":"^1.0.0-beta.34","async":"^2.5.0","bip39":"~2.4.0","bn.js":"4.11.6","clone":"^2.1.1","yargs":"^7.0.2","lodash":"^4.17.5","levelup":"^1.1.0","request":"^2.87.0","cachedown":"^1.0.0","js-scrypt":"^0.2.0","websocket":"^1.0.24","seedrandom":"~2.4.2","eth-sig-util":"^2.0.2","prepend-file":"^1.3.1","ethereumjs-tx":"1.3.4","ethereumjs-vm":"2.3.5","ethereumjs-abi":"^0.6.5","level-sublevel":"^6.6.1","shebang-loader":"0.0.1","ethereumjs-util":"^5.2.0","ethereumjs-block":"~1.2.2","ethereumjs-wallet":"0.6.0","localstorage-down":"^0.6.7","abstract-leveldown":"^3.0.0","ethereumjs-account":"~2.0.4","merkle-patricia-tree":"^2.2.0","web3-provider-engine":"^14.0.6","fake-merkle-patricia-tree":"~1.0.1"},"_hasShrinkwrap":true,"devDependencies":{"mocha":"~5.1.1","memdown":"^1.3.1","assert-match":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.2.1_1534374613064_0.6626025864143361","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"ganache-core","version":"2.3.0","license":"MIT","_id":"ganache-core@2.3.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"f8a58e9bbd75d320580c4eebb12edf1ec30ba324","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.0.tgz","fileCount":43,"integrity":"sha512-euG3kEIQrBLctMGmD/43JhvcK6/TMZzmf3qO4uBFIM8pVc/7P6tY63j094uAhjlx3VqxCawDK41LlJTfQagPkg==","signatures":[{"sig":"MEUCIDdb9pHCyYRmxmC9EfbQ0U/thX3a6M4lFGJm0xqvarpFAiEA9gUqxNGqngtarAbhqUjILnU/XHnepYY/hR8EDi/VRBY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1697480,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7esDCRA9TVsSAnZWagAAsc4P/32hxyvr3MfctMtLEqeJ\n+sAaQgJbCza88C312ZTuj8lu4ry935FF9KizW+tAnDUzAOxz7ruGNA23/Nhv\nWVks/eu8EdipElCNBiVlDBc+8b3a+YuNRtxrck+6sqMAp7svvjcAy/bXNhH8\nG+6VVw5rLm7bSs+XWAL7mab2JdB6MgztJVpgKMeBBBdRsPSaOGrz3E181atl\nEcBMPlCul3F2E3NAd9jR64uGiKVH/av2DT2g3j8tFlHVnE5Idqh4qRP31wQn\nMN76glEZjinzpNTvpcnENzRtl9BnHh+z/0gsoA79QhT/6sKQU3qPDU/4gRgs\n7iKwGBNAkHfD9OR8gY7r3f8QUi36x8uVfCvUgFHgJ9FhVv3soWZXA/Y44GJJ\nVXKRFmyTzbZ87wSJYwyzO+ZHllXVlgk5tkwLigWY2Szi8Ta49JqlQkbPCj3g\n1S3DNaQQbs4Qg3OelYNLrV9HN68rqClNyeNOMCLYAvFX4ZLhgeGEA4Tg1mEF\npg+IabL6hLF94ZT5V3Zm1uTTTH1lh/20EgUeeduEKeE6uyeBoARpUTUUbqvK\noJGyiZiyu/IY5hgmlwos98n6VgjcmMHAZaBu6J9YuZWbv6R9J4EjlW4uXu+D\n1h3FH+t4KXKjn3JhKZXMHFSM+4FJvDpGTbycxkEdnYsl9iYfmd8M8KxNrQiv\ntWHW\r\n=Z/yw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"0891b5bd9386cfb8549b268c7f9be679e904023a","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","prepublishOnly":"npm run test && npm run build && npm run test-build","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"8.12.0","dependencies":{"tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"1.2.2","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","source-map-support":"^0.5.9","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.0_1542318850494_0.9424086824313544","host":"s3://npm-registry-packages"}},"2.3.1-beta.0":{"name":"ganache-core","version":"2.3.1-beta.0","license":"MIT","_id":"ganache-core@2.3.1-beta.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"c302207ec0c1215547e85816a8520e1f0915eab9","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.1-beta.0.tgz","fileCount":44,"integrity":"sha512-tCX6gU6KFDC8A8a1hGFeAdE3kPg8tOZza2IP7CuGoqM+aUX7FJaIY/1R1A9oQc8yTK9HPAwmh3++JEBQmsEGbQ==","signatures":[{"sig":"MEQCIG1tq220Xvq88d1DI+BKMta+QCANpUa9OELMcwgdxa2EAiACcDV5yefiMYiCqAGeY7yrfzJQk9+ClC12ttE9rLa5HQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1895744,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8BLnCRA9TVsSAnZWagAAXrMP/34z0BUogANUCyoRR1x2\nPS+ekEUXmWITPEmH4WzpaIJwzBA93UUNKWSYIoH4OeIUubiTZw9ZW+AgAyMu\nW4eW80WYDj2jVumYScI2tEQXwS+p5mQVMunlTSVA5AgxPGm7S3/9Y+aXt1H0\nvQn7Om8X0UEfkmRbilLFPYqhfUZqkxuR7VQUB30IJbQjI9ZFMn9Ph0Bv8Ipf\nMRCwZho44MGfs2Z0pZSUL/OFzCc0iAmA3nOsoQ3EC/hcxCni/PJAm6+9EmsT\nVFwcOnGNDzXbltGWw1rWoaoVWuILe27G0VabB8VE2f88uKrFMWk2kKWFX+5H\nzJWIpbdt0XUQpPtloDLp/k3oLZfmZF+KXPwYrWuLrFiu4ocSlTELYkZF/Dc+\nhsMwPO/xkQxjo+PMssv8QH5PDuV1mHMU5UuhHTx8RYmKj3DvrW5xGyr9EVAi\n9Lw4mtqNvy1XaPMv5N6tI9Yle9/936NpqtgBIk4QnVrJUhbGll1+IieqI5eC\nl7cFtAgupIsKlfljzgEcl4XBtJqhz4Tha5S5JVh7yuu7D15jTJcPid0tVTVY\nCFGwgWL761dHLzQnIEFvEYdtx6yfoSaYOuHbcBJAUZBDO516DGNEZ4H7Evk3\nRJeW9EePPlKH3oZ2NbH1yXndw89g8aJkvfCCvjdHxkMrsAFYGkPVBEvOP52B\n4T/o\r\n=vVYA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"allowUnlimitedContractSize\"`: Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"0891b5bd9386cfb8549b268c7f9be679e904023a","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm install","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"8.12.0","dependencies":{"tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"1.2.2","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","source-map-support":"^0.5.9","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.1-beta.0_1542460134688_0.882368400750229","host":"s3://npm-registry-packages"}},"2.3.1-beta.1":{"name":"ganache-core","version":"2.3.1-beta.1","license":"MIT","_id":"ganache-core@2.3.1-beta.1","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"97899e854df03f1dae1b11471eac5abce490a5f1","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.1-beta.1.tgz","fileCount":43,"integrity":"sha512-rX6zDUD9H4OX7DKq3SCZRxLsa4vx5ZzPYFHWOHZQIik3/BHmuh3h4QkEFM5D3Ay47pqHBIeerBY0cJz0AskWog==","signatures":[{"sig":"MEUCIQDAoCs9Bhit1V6flkIiOJi3U/Bm/weZCCFdWb+AWxRvqAIgGqbjMsB2LYGZNWe7HakgT2SJsF9/DU3HtmQz0t3rn+U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1505832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8BalCRA9TVsSAnZWagAAOasQAKPbkv10OHhBgZpHNMsU\nxWOzI/OqFxQApVNUirpYccAAUGo4FK8QMtiWtziJVgk0pdjmE5aZFKoS4htO\nN4ofFJbji+l6KiSEyZztt5ifqzMCz4Uh378wf61/EDN9ReGGxQdejrN5pwBL\n5RjwEsejwYpH5EUi3ZJoalH1HetBoU7DWVQRjLa9ZLPhTAo/SHKQmbFgvZ4O\nTCcQ48s7jfjeIoWOrBvNiKISX/HdlVisCL5U5sW6TTkwMfWbH1QHZyGFMsGE\n/q1wWzrUAXVvtPVavfDLLfbLl2tr83FlebiiHTeg53S5ys9G5xXBNT/Nhkre\n5CmZtF5y3H29+8/SrWDYpbwTpsklbaW4Tz/hx+wAVJwhxEvR0i95lN3Q7nlY\nxU5RqTKrQx7iRRfnvRRKF5Qoe80JX6m6K1ecclIf97nxBzfUvMHhE1V/PYHb\nxg2GvHLneFs4vD9EnqBDzyxyiBvMs0J7+xjrc9Z2Z3EYL9UG4lTeB1TPGoxV\nb1cyhaF/G+qMo1xJ4qe4D0n5UAG0keIRB5t5s/zU4WbMGqXsjxwVe5UnshuG\n5VzqWZGfmyAeQI9iWgKwGnPPj3wgftL/sah0FThy4d4hiYdjizpQ2yCOCCMh\ny9C1xbAIzTElfcDojisWRaqPexZQGaUfqpKHXl/Z1Zz8WWoLDnKhgamnhShf\n5hty\r\n=tWJs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"allowUnlimitedContractSize\"`: Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"0891b5bd9386cfb8549b268c7f9be679e904023a","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm install","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"8.12.0","dependencies":{"tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"1.2.2","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","source-map-support":"^0.5.9","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.1-beta.1_1542461092445_0.6706482655276154","host":"s3://npm-registry-packages"}},"2.3.1":{"name":"ganache-core","version":"2.3.1","license":"MIT","_id":"ganache-core@2.3.1","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"c22a22edfec9c990e530c7a9736dbf09599b99bb","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.1.tgz","fileCount":43,"integrity":"sha512-I4t4P+LYUZRnGbxDseqSa5vIJ8C5e35vw5Fr7f2iMMN6jmO5TVjWWgNib60G2iL+XTbYUFmou040hHxrTaNtnA==","signatures":[{"sig":"MEYCIQD05aW3ybYsiiCarT8ZjCvIZXkS8f+nKDzimvFzyfuK8wIhAL8VRqGTQOMaDilaVCsxAcdgB9HcS9DGzFwKRRV3qH0S","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1505686,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8ETnCRA9TVsSAnZWagAA8kwQAJ1pguZGswvrWHd5TVj2\nUfWSgpzPomhQxq83BwmaOWeuGh9TDZAm5SzYsklslory/oVYCFc925a4X3rI\nHBNJDvasNOiodq4mknz07uIMoOh4vO4dzbHVPsUtWFzfK9098G9Co4w9lHou\n5MFvRxt1l+dD5GaWS/gNsArVsgR7SURlDkggcjYl+Fi873OcwTiwL2VriDQe\nuByE65QI9cr+9xfXDPb9zpPTNRVRjnuZrQ0bGNihtFwfz1ZkptbltFGZWBX/\naMb/kMvYkEqfZvmBp/bAT8CqsNpf4BVq08s856/IM1PVIYijdr9pvCJCP+I0\njSShzk4qppBd5bZOt3BDhiNxBbPEzYKz1kwD83WJ+o15wEfV3z6V2C5eld7T\nEosWW/noYgczGI9JYZ56N8/HFjfS3lAyMjWLzq4dYirJmHXfPC57Gqz8s5xy\nmt/CZAqU3K3TurHTMIPcQff83qfslUwl6uT0nX1zTYm8Ct3xYA7ASFrhsuF1\nSnZI3d4ly4E/43iJHRwnI0zKUM761O03UAoT+0uz+MnIglhGTovdnkJ4oKQJ\nsfGn6nLgH6nC35sN7zfZHksx3+ENevHhK2CIo7/mdKE6mUFgKCTeJhekPWXs\nHDgiCMne8JUJsh4KGHtvxgyk2QkVLIA0CblMMTNOFIy94HmZouJW2iuw2DPP\n6p52\r\n=FwT3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"3722a5076dfd010642b01eab31efd8de255932d0","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm install","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"8.12.0","dependencies":{"tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"1.2.2","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","source-map-support":"^0.5.9","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.1_1542472935027_0.8004811600420727","host":"s3://npm-registry-packages"}},"2.3.2-beta.0":{"name":"ganache-core","version":"2.3.2-beta.0","license":"MIT","_id":"ganache-core@2.3.2-beta.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"97f63d7c515492b016e46bc73e70777d71f6f13e","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.2-beta.0.tgz","fileCount":41,"integrity":"sha512-LumsHo2zzE0S7K7i0m8abROeXNs71RKMB2GKB3QTlfntxC0RIE9KVvfnCaq4IyqbdY9Q3SyOFF68rqDgmi0B9g==","signatures":[{"sig":"MEUCIETorIo9orD/j6ty9Tst50FCvCOUrGFxjm+WAkPs2asRAiEAitTgW3yqEtMDibA89EsFFmkSt7WAKlqtHG0FC2Zqk9o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1614860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9GAoCRA9TVsSAnZWagAAXOIQAJ94n7xRsKU8b2nY4Ted\nYjiD1ji4G3axkrGx2Det0RT5a7abpEXY07y2fLQiHOM2gYaKkTFFVGYX8ZJW\n82BzxlyUBpi60p/+BK6JSHSM2cgCj3i1wF7r2TPzwRczuHCEm586xclsosF5\ngM5pQLugqZZrQqFx9SSHn6s69MxbCoR3x0tP6Ve77RlEFwqWpqefw2Txwr6w\n0gd8yLmqRif9qmVwEefqRtMRlOhs56psAMPJheAjiWoHlcv0UfpIWsBBfx+F\nKuIADQemW5k/A3uiALlz9/UNsEsWX7JRVIwyBU5Txh1erG53424b04G1vKh3\nij+Wg3DV4RIo+LTvucQrPlHidDvvMdELMeN/trCW5BarUm+xoatR4WU6+Rfa\nSKYYELqY+hV16HWmHX/fXHOylO5GvanJAvQw8BofK+A1OcJsWuPwTitX4IdU\nK2qXqJzp5NQ0gVcBmT0apdsKOQ6tldAEqQpdAUmz8RIILM2Do8VCPp76LeIz\nRzadBKBbRmtLaUVUPg7ajogLU5Vu0sCSYPFUTDnpNJxjfXcnxaIqG0SMLhdp\n3GLXR68e6d6B1CQeKLISd/YW5XZaq8u7tlMStj4TWgh5t5nLFoZZ1femtdjo\nf5EJe5Uj7338O0LU/7swA1SkLZJOw13e3N3OjC1P9+8/x5yfQGc2D1YCoKJU\nj3Gf\r\n=mLEG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\r\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\r\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\r\n# Ganache Core\r\n\r\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\r\n\r\n# INSTALL\r\n\r\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\r\n\r\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\r\n\r\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\r\n\r\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\r\n\r\n\r\n```Bash\r\nnpm install ganache-core\r\n```\r\n\r\n# USAGE\r\n\r\nAs a Web3 provider:\r\n\r\n```javascript\r\nvar Ganache = require(\"ganache-core\");\r\nweb3.setProvider(Ganache.provider());\r\n```\r\n\r\nAs a general http server:\r\n\r\n```javascript\r\nvar Ganache = require(\"ganache-core\");\r\nvar server = Ganache.server();\r\nserver.listen(port, function(err, blockchain) {...});\r\n```\r\n\r\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\r\n\r\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\r\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\r\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\r\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\r\n* `\"port\"`: Port number to listen on when running as a server.\r\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\r\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\r\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\r\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\r\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\r\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\r\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\r\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\r\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\r\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\r\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\r\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\r\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\r\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\r\n* `\"allowUnlimitedContractSize\"`: Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\r\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\r\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\r\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\r\n\r\n# IMPLEMENTED METHODS\r\n\r\nThe RPC methods currently implemented are:\r\n\r\n* `bzz_hive` (stub)\r\n* `bzz_info` (stub)\r\n* `debug_traceTransaction`\r\n* `eth_accounts`\r\n* `eth_blockNumber`\r\n* `eth_call`\r\n* `eth_coinbase`\r\n* `eth_estimateGas`\r\n* `eth_gasPrice`\r\n* `eth_getBalance`\r\n* `eth_getBlockByNumber`\r\n* `eth_getBlockByHash`\r\n* `eth_getBlockTransactionCountByHash`\r\n* `eth_getBlockTransactionCountByNumber`\r\n* `eth_getCode` (only supports block number “latest”)\r\n* `eth_getCompilers`\r\n* `eth_getFilterChanges`\r\n* `eth_getFilterLogs`\r\n* `eth_getLogs`\r\n* `eth_getStorageAt`\r\n* `eth_getTransactionByHash`\r\n* `eth_getTransactionByBlockHashAndIndex`\r\n* `eth_getTransactionByBlockNumberAndIndex`\r\n* `eth_getTransactionCount`\r\n* `eth_getTransactionReceipt`\r\n* `eth_hashrate`\r\n* `eth_mining`\r\n* `eth_newBlockFilter`\r\n* `eth_newFilter` (includes log/event filters)\r\n* `eth_protocolVersion`\r\n* `eth_sendTransaction`\r\n* `eth_sendRawTransaction`\r\n* `eth_sign`\r\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\r\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\r\n* `eth_syncing`\r\n* `eth_uninstallFilter`\r\n* `net_listening`\r\n* `net_peerCount`\r\n* `net_version`\r\n* `miner_start`\r\n* `miner_stop`\r\n* `personal_listAccounts`\r\n* `personal_lockAccount`\r\n* `personal_newAccount`\r\n* `personal_importRawKey`\r\n* `personal_unlockAccount`\r\n* `personal_sendTransaction`\r\n* `shh_version`\r\n* `rpc_modules`\r\n* `web3_clientVersion`\r\n* `web3_sha3`\r\n\r\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\r\n\r\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\r\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\r\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\r\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\r\n\r\n# Unsupported Methods\r\n\r\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\r\n\r\n\r\n# TESTING\r\n\r\nRun tests via:\r\n\r\n```\r\n$ npm test\r\n```\r\n\r\n# LICENSE\r\n[MIT](https://tldrlegal.com/license/mit-license)\r\n","engines":{"node":">=8.9.0"},"gitHead":"2eec5a8f6096f6005ccb2c9d9600baeb8d3d57c7","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm install","postshrinkwrap":"json -f npm-shrinkwrap.json -I -e \"d=this.dependencies;d.keccakjs && (delete d.keccakjs.requires.sha3);d.sha3.optional=true;d['scrypt.js'] && (delete d['scrypt.js'].requires.scrypt);d.scrypt.optional=true;d['scrypt.js'] && (d['scrypt.js'].requires['js-scrypt']='0.2.0');\";","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm install json --save-dev --no-shrinkwrap -E && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\r [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\r [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\r #","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.13.0","dependencies":{"tmp":"0.0.33","heap":"0.2.6","pify":"4.0.0","sha3":"1.2.2","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","scrypt":"6.0.3","levelup":"3.1.1","cachedown":"1.0.0","js-scrypt":"^0.2.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"1.2.2","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"json":"9.0.6","solc":"0.4.24","temp":"0.8.3","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","eslint-plugin-node":"7.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"sha3":"1.2.2","scrypt":"6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.2-beta.0_1542742055003_0.9826893925402183","host":"s3://npm-registry-packages"}},"2.3.2-beta.1":{"name":"ganache-core","version":"2.3.2-beta.1","license":"MIT","_id":"ganache-core@2.3.2-beta.1","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"ba8c982c71022a5a103976dd45eede05ddac1711","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.2-beta.1.tgz","fileCount":41,"integrity":"sha512-hI2oiapr930wJ4Ppn4N3U7BfpmfSMsO3oFho+A5vHTYNiRFUzbEIx4HYn4DJaSslXFeTk+FWeJgC7XweieXKfQ==","signatures":[{"sig":"MEUCIG9ViCR9ojXS6kDiPHhhZlBdM5Dd459naepIbmhBYoeLAiEA9Hap+Wyf7wAslz8C6qjMqpFkjebjXrAtJ3TGSmIqJYY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1614294,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9HrICRA9TVsSAnZWagAA28EQAI+s/eNmk/9hGfKK7Dgf\nu5QhlwKj1tkutKFZt34yzoNtwxzcZ9hlKlHez4c9Feh3f2x4Xy0zy//+DHc1\npi7F6juNpNlqXvGgLj+D83DvaR94e1WDw7Zluh2OJmw7RvBjcGpCuDF1VHQF\nQDR/0LdXdnguGVn0V4eSPcW30XQnHBV1fLcXE0caeBOU5Y9riZ4fA0uj9tNh\nGc8ryWKpQZHCl0qYfLA++7rJ7uu3Nj3ILOwIb+AU2GPSJvOnTkMegTEYhvKH\nLeC+28o6OVjRXWlpnK22nRSdl1xeNZMl+O4EbeXkTG4XopHNiw2aiBi8s3k0\ndRhmKsUETUZ+9bcPlAWMsziVZU2lhxrcayFUhBPk4wrV6foA3hZTFS9E0iPM\nFw2TG4j8iYU6VM99w9uP19CIqxjx7pO/CygiFfcg9kVYslmanuZ5fA7y0CIW\nl2pWbiRGDYsYWp6/PFbPJK4uRSvbn9+UBvkNlPJUE/FSw2fcfXunqL4km8WO\ng0xEk/WCoTA4frgCmA6GzLIikxdAVPkcYSBhMRLWh1EE9A4Z5kLcb4K29CwE\nOCEaRuHl9MuKyYQLe20m/JUkwi1a2z2BOTQSnd589fpnOMi0zUFlfPziJTnL\n6JTinKRUHr8+taXu7cKTBTClPX2cQDTuj+dDqf9jikuz/kyLAm9nhkm0/65d\nzXzQ\r\n=PnAm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\r\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\r\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\r\n# Ganache Core\r\n\r\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\r\n\r\n# INSTALL\r\n\r\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\r\n\r\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\r\n\r\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\r\n\r\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\r\n\r\n\r\n```Bash\r\nnpm install ganache-core\r\n```\r\n\r\n# USAGE\r\n\r\nAs a Web3 provider:\r\n\r\n```javascript\r\nvar Ganache = require(\"ganache-core\");\r\nweb3.setProvider(Ganache.provider());\r\n```\r\n\r\nAs a general http server:\r\n\r\n```javascript\r\nvar Ganache = require(\"ganache-core\");\r\nvar server = Ganache.server();\r\nserver.listen(port, function(err, blockchain) {...});\r\n```\r\n\r\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\r\n\r\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\r\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\r\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\r\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\r\n* `\"port\"`: Port number to listen on when running as a server.\r\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\r\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\r\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\r\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\r\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\r\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\r\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\r\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\r\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\r\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\r\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\r\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\r\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\r\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\r\n* `\"allowUnlimitedContractSize\"`: Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\r\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\r\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\r\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\r\n\r\n# IMPLEMENTED METHODS\r\n\r\nThe RPC methods currently implemented are:\r\n\r\n* `bzz_hive` (stub)\r\n* `bzz_info` (stub)\r\n* `debug_traceTransaction`\r\n* `eth_accounts`\r\n* `eth_blockNumber`\r\n* `eth_call`\r\n* `eth_coinbase`\r\n* `eth_estimateGas`\r\n* `eth_gasPrice`\r\n* `eth_getBalance`\r\n* `eth_getBlockByNumber`\r\n* `eth_getBlockByHash`\r\n* `eth_getBlockTransactionCountByHash`\r\n* `eth_getBlockTransactionCountByNumber`\r\n* `eth_getCode` (only supports block number “latest”)\r\n* `eth_getCompilers`\r\n* `eth_getFilterChanges`\r\n* `eth_getFilterLogs`\r\n* `eth_getLogs`\r\n* `eth_getStorageAt`\r\n* `eth_getTransactionByHash`\r\n* `eth_getTransactionByBlockHashAndIndex`\r\n* `eth_getTransactionByBlockNumberAndIndex`\r\n* `eth_getTransactionCount`\r\n* `eth_getTransactionReceipt`\r\n* `eth_hashrate`\r\n* `eth_mining`\r\n* `eth_newBlockFilter`\r\n* `eth_newFilter` (includes log/event filters)\r\n* `eth_protocolVersion`\r\n* `eth_sendTransaction`\r\n* `eth_sendRawTransaction`\r\n* `eth_sign`\r\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\r\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\r\n* `eth_syncing`\r\n* `eth_uninstallFilter`\r\n* `net_listening`\r\n* `net_peerCount`\r\n* `net_version`\r\n* `miner_start`\r\n* `miner_stop`\r\n* `personal_listAccounts`\r\n* `personal_lockAccount`\r\n* `personal_newAccount`\r\n* `personal_importRawKey`\r\n* `personal_unlockAccount`\r\n* `personal_sendTransaction`\r\n* `shh_version`\r\n* `rpc_modules`\r\n* `web3_clientVersion`\r\n* `web3_sha3`\r\n\r\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\r\n\r\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\r\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\r\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\r\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\r\n\r\n# Unsupported Methods\r\n\r\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\r\n\r\n\r\n# TESTING\r\n\r\nRun tests via:\r\n\r\n```\r\n$ npm test\r\n```\r\n\r\n# LICENSE\r\n[MIT](https://tldrlegal.com/license/mit-license)\r\n","engines":{"node":">=8.9.0"},"gitHead":"e5de4785e813f814b222beecb0b582329324aadd","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm install","postshrinkwrap":"json -f npm-shrinkwrap.json -I -e \"d=this.dependencies;d.keccakjs && (delete d.keccakjs.requires.sha3);delete d.sha3;d['scrypt.js'] && (delete d['scrypt.js'].requires.scrypt);delete d.scrypt;d['scrypt.js'] && (d['scrypt.js'].requires['js-scrypt']='0.2.0');\";","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm install json --no-save -E && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\r [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\r [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\r #","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.13.0","dependencies":{"tmp":"0.0.33","heap":"0.2.6","pify":"4.0.0","sha3":"1.2.2","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","scrypt":"6.0.3","levelup":"3.1.1","cachedown":"1.0.0","js-scrypt":"^0.2.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"1.2.2","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"json":"9.0.6","solc":"0.4.24","temp":"0.8.3","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","eslint-plugin-node":"7.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"sha3":"1.2.2","scrypt":"6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.2-beta.1_1542748871669_0.568417433614836","host":"s3://npm-registry-packages"}},"2.3.2-beta.2":{"name":"ganache-core","version":"2.3.2-beta.2","license":"MIT","_id":"ganache-core@2.3.2-beta.2","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"327a36a6310e84db0eda11e9eb115ebe02d08202","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.2-beta.2.tgz","fileCount":41,"integrity":"sha512-St6iyNp91BF8hpgG1LNf151e9LDGx2cFTgt0J5A7UDiNAj6L89lRO66q1OR5dJajDFcqPUTQQPLrpGFJYXXDAA==","signatures":[{"sig":"MEYCIQCP92b9CmKGmiChhiRC+o3yqBBLSZB+l/2ug5d/lAagJQIhAPvaHOu9vgmk9oq7nGBu6bP792M+WLnSk5UcHBsItfIM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1593886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9bXkCRA9TVsSAnZWagAABIYP/3DGu8ARt94UO/+FjfW2\n000PYGxiNadfp6aBPvDGon7CStszRGkRazfLXJc2oQVa1HnkqVpQydue+yhw\ne13cj+zx3uXY8bss8L0OTGzVeCFit4Md103RKpvtfntjysYhcB8Oh96c3tOR\ntpRpo9WK7Q9m93kbSG0nPQDL6QiplbE2G6JSJesDgauJFThi9TXM9bziu0HN\nXYPveEqx28bEveyYW/zTr7ljCGWHzG/Zr2c0npIZmqs4EF7OjAkIjmby/+N1\nTyvciTUog0WjsiYNIZAnht5s4I67EA697pufFAlwJ/RPYBsjaSkfHQh8vw5V\nhex87UE110nFBIdpTkUBdoKbeWdr+YFpKrvmC+65jro6N2gxwwZ4thYDMVBA\nx645tX+hGOy+BoFeZhazrCPteqacne9d1oZgNseIUxvimF8mG2REI+hD0STc\nWzo6R+/FjyT/0Oo4vfI1oI+SsD5imdEH+r9OFjtuefnFXR6MJhiaNbv9chH+\nQkGcrhUEpx133keI2ENT7aHsy4ChZpuW6TpmdX0iCFKCtA9WJC4M8LCSnh9l\nsSyrujX87fxtzLNQdGcSJsBGYLDj6hTwTApOUfRo9viJ5wU5VRc/4njzXiV/\nzLuWqpBnEh0QikfpS0zoia0Zw9Yg2FpodHz8lkGQ53h7eitsNW+kwGP0WZ1N\nOBKi\r\n=XMMs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\r\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\r\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\r\n# Ganache Core\r\n\r\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\r\n\r\n# INSTALL\r\n\r\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\r\n\r\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\r\n\r\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\r\n\r\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\r\n\r\n\r\n```Bash\r\nnpm install ganache-core\r\n```\r\n\r\n# USAGE\r\n\r\nAs a Web3 provider:\r\n\r\n```javascript\r\nvar Ganache = require(\"ganache-core\");\r\nweb3.setProvider(Ganache.provider());\r\n```\r\n\r\nAs a general http server:\r\n\r\n```javascript\r\nvar Ganache = require(\"ganache-core\");\r\nvar server = Ganache.server();\r\nserver.listen(port, function(err, blockchain) {...});\r\n```\r\n\r\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\r\n\r\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\r\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\r\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\r\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\r\n* `\"port\"`: Port number to listen on when running as a server.\r\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\r\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\r\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\r\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\r\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\r\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\r\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\r\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\r\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\r\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\r\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\r\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\r\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\r\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\r\n* `\"allowUnlimitedContractSize\"`: Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\r\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\r\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\r\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\r\n\r\n# IMPLEMENTED METHODS\r\n\r\nThe RPC methods currently implemented are:\r\n\r\n* `bzz_hive` (stub)\r\n* `bzz_info` (stub)\r\n* `debug_traceTransaction`\r\n* `eth_accounts`\r\n* `eth_blockNumber`\r\n* `eth_call`\r\n* `eth_coinbase`\r\n* `eth_estimateGas`\r\n* `eth_gasPrice`\r\n* `eth_getBalance`\r\n* `eth_getBlockByNumber`\r\n* `eth_getBlockByHash`\r\n* `eth_getBlockTransactionCountByHash`\r\n* `eth_getBlockTransactionCountByNumber`\r\n* `eth_getCode` (only supports block number “latest”)\r\n* `eth_getCompilers`\r\n* `eth_getFilterChanges`\r\n* `eth_getFilterLogs`\r\n* `eth_getLogs`\r\n* `eth_getStorageAt`\r\n* `eth_getTransactionByHash`\r\n* `eth_getTransactionByBlockHashAndIndex`\r\n* `eth_getTransactionByBlockNumberAndIndex`\r\n* `eth_getTransactionCount`\r\n* `eth_getTransactionReceipt`\r\n* `eth_hashrate`\r\n* `eth_mining`\r\n* `eth_newBlockFilter`\r\n* `eth_newFilter` (includes log/event filters)\r\n* `eth_protocolVersion`\r\n* `eth_sendTransaction`\r\n* `eth_sendRawTransaction`\r\n* `eth_sign`\r\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\r\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\r\n* `eth_syncing`\r\n* `eth_uninstallFilter`\r\n* `net_listening`\r\n* `net_peerCount`\r\n* `net_version`\r\n* `miner_start`\r\n* `miner_stop`\r\n* `personal_listAccounts`\r\n* `personal_lockAccount`\r\n* `personal_newAccount`\r\n* `personal_importRawKey`\r\n* `personal_unlockAccount`\r\n* `personal_sendTransaction`\r\n* `shh_version`\r\n* `rpc_modules`\r\n* `web3_clientVersion`\r\n* `web3_sha3`\r\n\r\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\r\n\r\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\r\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\r\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\r\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\r\n\r\n# Unsupported Methods\r\n\r\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\r\n\r\n\r\n# TESTING\r\n\r\nRun tests via:\r\n\r\n```\r\n$ npm test\r\n```\r\n\r\n# LICENSE\r\n[MIT](https://tldrlegal.com/license/mit-license)\r\n","engines":{"node":">=8.9.0"},"gitHead":"e5de4785e813f814b222beecb0b582329324aadd","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm install","postshrinkwrap":"json -f npm-shrinkwrap.json -I -e \"d=this.dependencies;d.keccakjs && (delete d.keccakjs.requires.sha3);delete d.sha3;d['scrypt.js'] && (delete d['scrypt.js'].requires.scrypt);delete d.scrypt\";","prepublishOnly":"npm shrinkwrap && npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm install json --no-save -E && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\r [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\r [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\r #","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.13.0","dependencies":{"tmp":"0.0.33","heap":"0.2.6","pify":"4.0.0","sha3":"1.2.2","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","scrypt":"6.0.3","levelup":"3.1.1","cachedown":"1.0.0","js-scrypt":"0.2.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"1.2.2","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"json":"9.0.6","solc":"0.4.24","temp":"0.8.3","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","eslint-plugin-node":"7.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"sha3":"1.2.2","scrypt":"6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.2-beta.2_1542829540212_0.6342917744406742","host":"s3://npm-registry-packages"}},"2.3.2-beta.3":{"name":"ganache-core","version":"2.3.2-beta.3","license":"MIT","_id":"ganache-core@2.3.2-beta.3","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"fd0cfd19cd904912c900df50acd0362784dd9432","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.2-beta.3.tgz","fileCount":44,"integrity":"sha512-g7EWLbaCVE5DfFpJwPusPi2VLGtlGeXr13qT14vkV7FZxd1TJicLucXY66Ensrm7+9y8w2LYd4reViEFt25DPA==","signatures":[{"sig":"MEYCIQCUPc8w0a4FdWC8HG1a8WFk+noPMQJIBxpYgVkqa3wB2gIhAOP4bhTg6XCK98tAXBXIwyU/GFs48kjBW5dM5HngjJa8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12584161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9sy7CRA9TVsSAnZWagAAo84P/iSTDSDPkAO7A4yik3AL\n2C0NS3Yv6lShw/48MQbSr9cDIlv2nA5CTMz5YgENcZSiVugxsJoHO9ePQ+1Z\n3Q3iL4FHXN5nocN9C+VGw5QxicxNlIE2a9h5Gi4f+pSueYATtYgd6pchnRlu\nObSvPI3ecHPHoWleO9v7mutdIE9nNc4XMa64+8+3YRrmi/eiJt7LCHZC8mNp\na/+yqczVYNRP1kY0KUAxBml0wtHW8SZVL0G8Eqx1GJhjazgh1+YKKLpD9OrP\nXs7L0YABf9A3ptFcizuO604BbmeT64ee9zYPVa2cHumVSjRWjIF+34JGY7tE\nISiqWgxRH0feM3fcCfxSVfHahUIrRm/RTSsRKupnMmeREqXUDtMOiTaSAUlk\nfsKKmrNVlvL06WWNyDk37bxap+xto17hd85+VwdYrFDSLnHkkLHHJvVKe1Kc\n+4X/QKDRSJaKWQEWu42p+vLDcZAFKKeGva1SCuaYHFXC4iR2QOT74wQNibGq\nTxt0c0mPv4Y8xkPiqT8MW75CRi9599g/YjI+v8RKGqmUDl6jh3818jSkfuKF\nZfq38sYuD3b7MgWOuoGvXYvNu1+ddKv+5IJsZRQNwZHivqJScxj1dpa/7HE/\n/lPDmSV3pxX5oVwtIyBKYwOGqYeB0D/T/um7B238/3KYiohtdGpYMOgoPKA7\nb489\r\n=PPdL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\r\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\r\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\r\n# Ganache Core\r\n\r\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\r\n\r\n# INSTALL\r\n\r\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\r\n\r\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\r\n\r\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\r\n\r\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\r\n\r\n\r\n```Bash\r\nnpm install ganache-core\r\n```\r\n\r\n# USAGE\r\n\r\nAs a Web3 provider:\r\n\r\n```javascript\r\nvar Ganache = require(\"ganache-core\");\r\nweb3.setProvider(Ganache.provider());\r\n```\r\n\r\nAs a general http server:\r\n\r\n```javascript\r\nvar Ganache = require(\"ganache-core\");\r\nvar server = Ganache.server();\r\nserver.listen(port, function(err, blockchain) {...});\r\n```\r\n\r\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\r\n\r\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\r\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\r\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\r\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\r\n* `\"port\"`: Port number to listen on when running as a server.\r\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\r\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\r\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\r\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\r\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\r\n* `\"network_id\"`: `integer` - Same as `--networkId` option above.\r\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\r\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\r\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\r\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\r\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\r\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\r\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\r\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\r\n* `\"allowUnlimitedContractSize\"`: Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\r\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\r\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\r\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\r\n\r\n# IMPLEMENTED METHODS\r\n\r\nThe RPC methods currently implemented are:\r\n\r\n* `bzz_hive` (stub)\r\n* `bzz_info` (stub)\r\n* `debug_traceTransaction`\r\n* `eth_accounts`\r\n* `eth_blockNumber`\r\n* `eth_call`\r\n* `eth_coinbase`\r\n* `eth_estimateGas`\r\n* `eth_gasPrice`\r\n* `eth_getBalance`\r\n* `eth_getBlockByNumber`\r\n* `eth_getBlockByHash`\r\n* `eth_getBlockTransactionCountByHash`\r\n* `eth_getBlockTransactionCountByNumber`\r\n* `eth_getCode` (only supports block number “latest”)\r\n* `eth_getCompilers`\r\n* `eth_getFilterChanges`\r\n* `eth_getFilterLogs`\r\n* `eth_getLogs`\r\n* `eth_getStorageAt`\r\n* `eth_getTransactionByHash`\r\n* `eth_getTransactionByBlockHashAndIndex`\r\n* `eth_getTransactionByBlockNumberAndIndex`\r\n* `eth_getTransactionCount`\r\n* `eth_getTransactionReceipt`\r\n* `eth_hashrate`\r\n* `eth_mining`\r\n* `eth_newBlockFilter`\r\n* `eth_newFilter` (includes log/event filters)\r\n* `eth_protocolVersion`\r\n* `eth_sendTransaction`\r\n* `eth_sendRawTransaction`\r\n* `eth_sign`\r\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\r\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\r\n* `eth_syncing`\r\n* `eth_uninstallFilter`\r\n* `net_listening`\r\n* `net_peerCount`\r\n* `net_version`\r\n* `miner_start`\r\n* `miner_stop`\r\n* `personal_listAccounts`\r\n* `personal_lockAccount`\r\n* `personal_newAccount`\r\n* `personal_importRawKey`\r\n* `personal_unlockAccount`\r\n* `personal_sendTransaction`\r\n* `shh_version`\r\n* `rpc_modules`\r\n* `web3_clientVersion`\r\n* `web3_sha3`\r\n\r\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\r\n\r\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\r\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\r\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\r\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\r\n\r\n# Unsupported Methods\r\n\r\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\r\n\r\n\r\n# TESTING\r\n\r\nRun tests via:\r\n\r\n```\r\n$ npm test\r\n```\r\n\r\n# LICENSE\r\n[MIT](https://tldrlegal.com/license/mit-license)\r\n","engines":{"node":">=8.9.0"},"gitHead":"e5de4785e813f814b222beecb0b582329324aadd","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm install","postshrinkwrap":"json -f npm-shrinkwrap.json -I -e \"d=this.dependencies;d.keccakjs && (delete d.keccakjs.requires.sha3);delete d.sha3;d['scrypt.js'] && (delete d['scrypt.js'].requires.scrypt);delete d.scrypt\";","prepublishOnly":"npm shrinkwrap && npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm install json --no-save -E && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\r [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\r [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\r #","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.13.0","dependencies":{"tmp":"0.0.33","heap":"0.2.6","pify":"4.0.0","sha3":"1.2.2","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","scrypt":"6.0.3","levelup":"3.1.1","cachedown":"1.0.0","js-scrypt":"0.2.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"1.2.2","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"json":"9.0.6","solc":"0.4.24","temp":"0.8.3","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","eslint-plugin-node":"7.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"sha3":"1.2.2","scrypt":"6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.2-beta.3_1542900922613_0.1654798314797199","host":"s3://npm-registry-packages"}},"2.3.2-beta.4":{"name":"ganache-core","version":"2.3.2-beta.4","license":"MIT","_id":"ganache-core@2.3.2-beta.4","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"cd965c2384a090d9a2d0e730c4299fe3564bbd89","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.2-beta.4.tgz","fileCount":41,"integrity":"sha512-gSBR1UkEbyCaT3tviccATSCir+XOxZCvGW63UDtQSAZiOWH9fgSYIG9BXoJuLCH23iPoTs5tk7uHkhyveD2W3w==","signatures":[{"sig":"MEQCIBQPl8IzBBahg3FOy/FVr03Ao55djtW9HfdPuQ89KuS4AiAEjE1iBKYbKaIeAlVYvI2Mc3ZTUr72DaLSc+dZQyzURw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":800467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcED0vCRA9TVsSAnZWagAA+40QAIPSyUbXW7yB53C/Yjkd\nXaQGL6Z/QjAEUw7kltY9IGGAeu2+MhA+gNnZ83aftHkM1H8aEPS8r5lEgHv5\nRJHrF2+kUUuuz+bxR+1LuBPB1n53MR2HMLxKrI1fN2gst8k+lZ0G7NMb3aAf\nLS1ofYsafrIrWFtxMj3Z3q+tQzcJ+H/A89J4NP9ZtQIH4Y3rMh+5QESYfrWX\n4ZkYb3775VM0oXJHyCBuIrvhNySsTvjXdb5+/AS6Nt0mQ+2F8rO62Kqlyrr8\nvzncBxWtdMT0mqf6j4uXxX0sOClXPI+7UPCSo2BZmFP/NtyrSn3BUbvAd2KP\nGsGgQQRMJplaXMnOsf3isGK5U6N6xhGoZ+FIVmZzDUIX+frIsZA9Z7rARYhs\nwUrR5vQpB/UBy8o4TKECZife3gcwrbBIfTEzbnxS4soR8VUOEPkOOWea0nXG\nKPUIBd6uC3Kep5kr7Wml5H9gujEj6k3IGPkGIAiDVXS/aUQgkBW/GSYU3PLM\nC4v/yimjtcWwTgrmtogPAsoiFONkusdUrjuUCo6TRzXxHUcoy2Cz0R4Y74dT\nA2bOMlIpOrSHPqPyZ/2byHaokMKvIgeZxRfnF+29h6n5HufuvQS8/pbIazTZ\novQluStBI2RYDV0667TrkolWdEN00Rzs9klmZ8sUJ63f3px4q8GMSK+Zwm/e\n8+C0\r\n=4xsa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"allowUnlimitedContractSize\"`: Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"b2b89b11a3630b651583a9b6b4742fbf7fd7a9cc","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm install","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.14.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.2-beta.4_1544568110756_0.12881741265370827","host":"s3://npm-registry-packages"}},"2.3.2-beta.5":{"name":"ganache-core","version":"2.3.2-beta.5","license":"MIT","_id":"ganache-core@2.3.2-beta.5","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"0c2e44e2244335b0d6a271daba75d728e2a6efa9","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.2-beta.5.tgz","fileCount":41,"integrity":"sha512-l6NPJtqYuVxsEQXjuOpyUW77p1LtABw5NSTiXxNYJ/Qep2kVKYF/9N8jBfw51VhPeAMgVbgGUhN7cqIhhRfj3g==","signatures":[{"sig":"MEUCIQC/OYkuZB2Ib4XLyTfKR91abMSs9mBUgg9Hf32aRiH3SwIgFSuYLPlZp+2sxDzOVtkxisrWQFVUY+AHC0x+QyZSEc4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":801151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcEYnyCRA9TVsSAnZWagAATDIP/jjpWNKgPXPBPl8GqH60\nklXvkTc/6a25wBuNgVjrMtyGxz13tQi6vbBGn3BG+7VtkzNqtZq5BoAWAy8m\nxv9wksO6+s8RnwdeahhMEz1ulDZyWzUHlIwHY8jo1F6q0fSEr2TTpoktUX/d\nmZKd3IL9siaiIpAJFt02HKoi1ZTab5GSG97GxtYDvCZo9QYgnC2nlhxhyAET\nEmm3rH/+c/GfcqNIZQkqsfiV9lkA91dCuZAQ92FJWMeAEXIJNm+C8+6WtdvG\n8qrtvnTWp5mXyJSSPN1T+6Iw8ML7XrnDA6+2MdmomL3Gm/t8vjA7hLX/7qsi\nNc5ZkpQ5zmWUr8DUshP5XopCZ/CIPR5e+QwiCxqJjTcAA4O63Ni4bQjXSm/L\n0gRMoV1fDkSNTXE0nKPkeAMREqVC+fjkvZUMirLq5Gh9r866dEgtEqBuad19\n1T6IX7b1a9/fteEq0kA2spJKZmlmNSpXVR6eKtjJ+12FKuDeJIcHLGLwEoXk\nA7Y3q18eOheBOZVjIT6SjJVlfepWkeXc5JdwCbSY0n2wP52iiUtFSEyX/E13\nqGBkA3DlOX5zRDqPqpW73YEQvvx7Vnb76aSV4+pALTjhM/VjRWP/Gzwv2jdd\n7l13Yohlkwwawem0iUCvXO9eqvDqRCqbYedffyjDTn+E7iRFopg9uuMbds+E\nqrYZ\r\n=gFY9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/ethereumjs/testrpc/wiki/Installing-TestRPC-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"allowUnlimitedContractSize\"`: Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"728901f8994c35c89225c6073754cb725da8c0d8","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"8.14.0","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.2-beta.5_1544653297431_0.9764951761688863","host":"s3://npm-registry-packages"}},"2.3.2-beta.6":{"name":"ganache-core","version":"2.3.2-beta.6","license":"MIT","_id":"ganache-core@2.3.2-beta.6","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"18fd94fd2bef8f1c9954714d4d4bf811f4480e6a","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.2-beta.6.tgz","fileCount":41,"integrity":"sha512-xu+5+Rp7TQhQ+NSltYkEEO/oYl5aWZ+pVsk217DuoO1WCj8MdGocJ2DuFssgf9Brd5TV8Wfj80ES85rq5F65eA==","signatures":[{"sig":"MEUCICvCsV60Izqv3WG5hd15iOgxQ47cjasMqWtRqyx/kpLsAiEAocnjPLoBOpcpE0sYtWikzr0q0HIJwcSv5We93ZGA4PY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":783137,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcF9pxCRA9TVsSAnZWagAAsBYP/i+RCsBWtrDVjW/tGoRE\nOuNzeydO/Vo8qqHS8mv2KNFxGPdZ85Q/nJptSBElRTgNcgSWSxIf/CgmcYsw\nI1Vi8AXESoWAfc2wM3cj3cYa9wGtrl0pNFP9FKlUlXKenmlkFohuRMoEb+sh\nzr6DII+AJ/kvpwx01R7UapC9yQZwT+vdb77oYr8K1b8qA8V2ULUzbJ+nP+VM\nu4ocaGp3CfifNg0cG/LXfiKzcZiuYW8Qnfq05WPKR2MtBn7C6ITzz22nZ4t6\nKR9kkSjT44SiJcPIVk7cr4YRnQ0LthM6bAyJGltzLFwp6bEH/Gs1jJKeeifg\n0oreiey1ON7QG968wrE2q5y+1DJtcFxfqclLLQigTP8f8TO0Nu5Y9dk5KWNY\nQGF85+I8+Gn3cvdM4rSyMhMyxfJk6n0LUow7YIDbXvQWSIziyn5ONcRLjshy\npFZnCBs4cgSj0U0pYtvk9+VKTLiwN9/e7QVYc1yJPFY1O1V3eId6PNGdQceQ\njGjcUmAlrB/v9Fh7dQnsaCIPHqW+lduz+8wqNP7qdkEmcOvdC7C/mdPr/+O2\n5AHhsg4hTkXfkfL78oVdTN2fSY4jTEMJHn4W9DGPjxT2a2Jbxo7ingc3nLia\nZBmEB1RKUK5C48CghxsoQv71ZuDNnXu/KQ+zBUlxNz3BkfRAAe+LZuTyAqDL\npAmp\r\n=7xqp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALL\n\n`ganache-core` is written in Javascript and distributed as a Node package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\n\n```Bash\nnpm install ganache-core\n```\n\n# USAGE\n\nAs a Web3 provider:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nweb3.setProvider(Ganache.provider());\n```\n\nAs a general http server:\n\n```javascript\nvar Ganache = require(\"ganache-core\");\nvar server = Ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, that chain will be initialized instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"vmErrorsOnRPCResponse\"`: Whether to report runtime errors from EVM code as RPC errors. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"allowUnlimitedContractSize\"`: Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n\n# Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"c849ace4ca350892eb3c29a328dce116b5e875e9","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.5.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.14.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.2-beta.6_1545067120988_0.8485327088605774","host":"s3://npm-registry-packages"}},"2.3.2":{"name":"ganache-core","version":"2.3.2","license":"MIT","_id":"ganache-core@2.3.2","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"acc5aa5cdbef785662b469a98fb94c07e27bc3c5","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.2.tgz","fileCount":41,"integrity":"sha512-B2DPv0Z09eIWwwc8RqMFk4+Z2uVvrhvnogeJVjROKT1CdiMdenG1rablJCa/VoMY2GZj4rP9CkADB9W5DyQy8w==","signatures":[{"sig":"MEUCIQDC9+8czu+fn+5R4QmCByZE5f16DvaK7SPr/IAvCajsZQIgJm8C3xzAklmZBW1vND54fQ7dK3GthzYAVsT7Dw+CSqU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":802593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGCuFCRA9TVsSAnZWagAAzjcP/Alg6lDqY022WqIhzsnI\n8q9YHIlQgiv9c98et+Wmbk07U/vuZJdh4m/ZtOcqF1vhpZju3AqYuNJB+P7f\n8loit/tCQIYzdnAZr8mtiSp96BCC/iBTiwQ+oEgmOaOuqcEqOU4freXL1sr3\nrfs2sm22oDtFQ5uWuSiwEhP+yh2Erar3efXpuKDPPa6+x8lCXhUDnDXFs3/8\neDFfQVW130PF4ZQfaf/MmuVltHScBG0cGEHxAntMKOuHlbzJ99AwF3WfhrEH\nTbnJEC8bDV/n/d0dTAQAKsaleM5GCAzfumwZPVSznMwixmF7kxau24kkvXl5\nmxcKW87BffNHCjChs/W1lGziH550WFyse3KgaZnD/on/YsVd3QoP+L0dmEZg\nimWYS3OaWNINKcQvyNZr7Lm9ZHFMLRAWCyn04a7BOpS2cp2Rd45V1uyCIO8t\n33pZLShqAWLfGuBJu3q7T7UuwbbtB7qNZyIG3JS1LlopMTz4MmFqN67XThzz\nqYoR054OQ3QY61sa7zzo+TtTn1V+o7BBxAEhLLODg+wUgC8RZpzpNrFxPigN\nkA53kbGj+zLQqHM1io+QPeEcaz4VGoG8oHKJTgXYPVNp7LqLK6kRrN3UFRFf\neKo1QjMoEwRuy18n9zMHLi8Xd1qmXq/9j36LhlvlWhDPHul++HiErWH72qW6\n6gzB\r\n=0JTd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"870a8a7fb475cf22e1ef54370e1d0300a5096bc2","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.5.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) # Ga","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.14.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.2_1545087876679_0.5731616170164902","host":"s3://npm-registry-packages"}},"2.3.3":{"name":"ganache-core","version":"2.3.3","license":"MIT","_id":"ganache-core@2.3.3","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"e35c76d405f0ffba5c48621596fdcc38b0a03136","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.3.tgz","fileCount":41,"integrity":"sha512-MGmcDm27bMPeQvY5cZWK08AyiJj/18P0dgiCOhGyhX1LRCQD4Pj4tvpxd6w3dftn5iCBnzGwm9j3+WT0k+B0XQ==","signatures":[{"sig":"MEYCIQCzDQKOWLuCKGZJzjbRSDAOYAlhvrNDy1cuk80ZvbwN0QIhANpB2jMPmFB4cFs7KoqrhQf5pVwffsk+IenbVndTF7OJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":801746,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcG8NLCRA9TVsSAnZWagAAau0P/2h9XGL98Fkr02RF1D1i\nNKMJ88p61HAb/G3y8fMded7Tth0bh2Ufx82aGsCgglK1xTAqEEIBv+bLa3bE\ndwtatTsmacbLpelvzvAlSv7B0FYJp7dnafazyKacWaKnaZ9t7cPPYmD4x1Oq\nBsC9AUkyHLXazu+Q7YIyfpv7m7jdeo2fRXmMuIh1URNCOgueTMwJTHF1dI3D\nNJk/mV0nIHNNGT0ToeJK8K6LeTtv6F+5Mwck/cXjDSpNdyLRr50gaqprGP3v\nhDzIFCcuOPbiEU2oUrEfIDYAl+Ap+bDfh/NrJHdccNq1HIu8fj0jd8MJtp2T\n4sEDGNPefaZ4blc3A+/gSz/R+CIGH1yiMiWMF64ywlgoHhaomEajXCoo5zAw\nhhCZDB3hXCRR6pLhQJeTGgEfNNQAsgsAeAjZFj5VeNCBGMTkBAZ3ORMjCyvg\nvwPq29IKqFVciF50ROYRLNxmQIuhAUktlIQGMHn435J1X/GM3bhv05jI/g1O\n/sQOGVqkXuJoh8rbAYBLmtDsGyYJKxBsdP+hhDv9iD77fd81RUM2SPb8F4kF\nu7V1eIdpmI5Rk2AbmxmMcotpng3/s0oHfVSzfPftYoxZm5PvTKLUMci1FSHu\nPStj/hH48yGc0JNv/N614CxwzmiUsSwBvVNUQCrzDbgdDJVsm5hltcfptzP4\no4c/\r\n=LPZL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"2f869539ccc3fa81df0b462fc365482e2e222ec6","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"npm run test-coverage && nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","test-coverage":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.5.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.14.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.4.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^13.1.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.3_1545323338592_0.12079545709788286","host":"s3://npm-registry-packages"}},"2.3.4-beta.0":{"name":"ganache-core","version":"2.3.4-beta.0","license":"MIT","_id":"ganache-core@2.3.4-beta.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"d25a0613cd9fdf064d418d0af3d58d36a74adc55","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.3.4-beta.0.tgz","fileCount":41,"integrity":"sha512-tD+dY7UTZze0WvNxODT5goJGadGCWSoWbokAeXsQzQfVHQbNa02G77BrtEORFyk9BXQPbuqo/4AICio4uNPSXw==","signatures":[{"sig":"MEUCIQClslizaTC+ioIp3SfQ1yo93AnY5GUnpA9g+EoDFjaUKwIgDLYFf9WR8OdoPlkFt7kGGh/QAMptkF3YPXcSrbKa+dk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":801938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNoNNCRA9TVsSAnZWagAAmdYP/38IUVRkbmy/FzmbJMSS\nYFZ93K+nsNa7rOeGzeGYPK5cuGQyJtXO8TClq8Q7g0ObKY2gf8ORGBzQE5eK\nTzGIwXl+0IVhnaEUT81InWlM+ojmo1eZDRTDRvVsuYR7xZxouf8HMVuFqAyD\ng0liqGnaoVpL1kjfp56kxHObvXDML/7kvCy4yZnKlrxc7BcTjK4sETZCO5tW\nInJZRi5hVQmKpbYXDbAN7mC96IFZeYVeXykxSV1GNpYhwb+fjZhqeUyBbLr9\n4d/wmdHJ/CuZN7dEiKW7XGk6BtC1q81iIlSUPEAuJNeTqmcPHnZXJmdHIRUH\nMe7s3wgU/kpAQ4y1LXyVSZNxrQo3BP88iN/sGKflNcGBpYRxyF+J/fXOiIF4\nuORaCtVuw77HRAqpUEZKNlWb13lWRV+S2uvy7SpFquwiGZ9/F0WmAgTBTnI6\nYea4iNCn3VnQQ1TK+eDJm2gRlhleQF1Fb4KAY0QOgJZwLRVozkWJHsyZtHhY\nTVMk1jBufjYf5SfdEBAGkMcvz0rhhpnwxSnfMVWJdL4++qkPcWOMqPdm3ZBK\nKvJ7XJyXeCMQtABJ/UJ/LlHwCldJPoQSr+zi3x/BF3QqYrx0ydh/6DHcqhVw\ni5aTO9Cz9UGl8JztrGnjnlmA0zwFUsIToS05w8fTtzL5+TS2dLQb4feFX6BZ\nxKUj\r\n=M36K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALLATION\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n# USAGE\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: Allows to specify which hardfork should be used. Supported hardforks are `byzantium` (default) and `constantinople`\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n\n# UNSUPPORTED METHODS\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"3d1c56d324707622d59d80c947372e1f59285d82","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"npm run test-coverage && nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","test-coverage":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.5.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.14.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.5.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.1.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.3.4-beta.0_1547076428634_0.4374070360489166","host":"s3://npm-registry-packages"}},"2.4.0-beta.0":{"name":"ganache-core","version":"2.4.0-beta.0","license":"MIT","_id":"ganache-core@2.4.0-beta.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"462e79add22882387daba6d587370f8ad3bbb919","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.4.0-beta.0.tgz","fileCount":41,"integrity":"sha512-JFnvlEQA1aPD2fSbhwUMNzHUYaDaYzq/eiEu+dxNu3jqoEOYVz33qroxPGZKEzZhYWQw7s1mK6eBiCfZXdFBFA==","signatures":[{"sig":"MEUCIGa3qWlVnLlBkuaT4YARxWv16o6kiYCRD1SFkuhZ7edZAiEAvDfgzoLaVsiZJbTRMQzVU5E01lMSrhBiQBbT9yVzoGE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":801938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNoU+CRA9TVsSAnZWagAAMOMP/3vwFHdXvD1ZZRLWFUT4\nRRMw84FD/P3sa5rVx1ct9IFK7wZz9gX/+WG8Ps7zxNq+00/iCiD3qNQWUlTE\nmMvN+3vOlvig0w3eTKv/hnATpRnlTiE1LbAXwXqjb7ANd/zS1M0Y3eEJConx\nRRP8jvdrt4wNsC158VAbpcU0mxjkMWjfhyV4F4pJ8ysYYH3Rva5l6+/I/yHC\nvMdwgKIFoI/FHltnXsdSD9W9XcNDvuXA+pr8IGpmKcy/GukutY28hnpmpgWv\nLndHagXPBd1AXtyKGnPAu4sC0pK+OL9ymKBDUojIEkIZmmQa6tr+pT2Z4E+Y\nmvWn2axPq0Z9gdxw6YTOlsd0ZGGp3N1ciHwjLngBQZxSmd/JBVDCaWu1u4qZ\n+ONgw3yaFAHl3qPTY09ZpInhmmnuhriIBBecFb8ADLpy2BgOR2Gb13apYblE\nBMBoatYfqhW8TXiB3aCyLheLTZXtvibQYluOnchjv5HzwMOcmF6UWRojnm+A\nfSgxq7NbkBzkMYBH1KRGVZ+TtF6xSD2Gek6nQwO1kaW3qk0rm52cXbQkdl+I\nTLXpL8nx9oBv86/DYjWdFo36uhQPbccXs6+iQ+5b62tCfJ5IBbECkafh1Ekt\nNJUBTHTon8I5EV3yBhbYPl2xcOmri5UWr7cWhvg403GniNVmyz0gqo7nDXnU\nWNsu\r\n=+0y8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALLATION\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n# USAGE\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: Allows to specify which hardfork should be used. Supported hardforks are `byzantium` (default) and `constantinople`\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n\n# UNSUPPORTED METHODS\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"afad9c63b1b27b560fc39e57f2ff34006d7ba39d","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"npm run test-coverage && nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","test-coverage":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.5.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.14.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.5.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.1.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.4.0-beta.0_1547076925949_0.27512236591673367","host":"s3://npm-registry-packages"}},"2.5.0-eip1283.0":{"name":"ganache-core","version":"2.5.0-eip1283.0","license":"MIT","_id":"ganache-core@2.5.0-eip1283.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"74cc80467510831131c844cf983e654771444f62","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.0-eip1283.0.tgz","fileCount":41,"integrity":"sha512-t8oWfUrT0pQfgs58IKnZO86GBgBHgGHJQLx/yfP5N9IhsmrbArRXbupuG5P0CYIvjtY5XcJiPEQqcu7Lh3Dnwg==","signatures":[{"sig":"MEUCIHYAI3GdYal5Y9IDDqQqNaedkRP0X8C/324AjWeRMVAzAiEA8ooTbHSHVJ7BskHiZq2LyQpFuGR7g7NDqILjBiPCdlM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":956520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcShbkCRA9TVsSAnZWagAADs0P/1zxQ0DZ8UfElgZ2PI8W\n+W4rl8jSwA+J4YwW5bnGeznhcTed6ZiK5+/iJPJLb8lLG7e0uawCYi6wPYMv\nYI5Dk0aymT5TZmVk0Ag1OerH/vD4ouaa9qtq7LvR9eiiByJV63G+1L50Z9am\nuBHSyzdXfHVZp6x+nxrperqIA4gFg7H4EbcYkRwMMt16ShpaUr4c3gEOszxk\nDjROEaQicSmsnCWG1xpEE+HvhENNTuQz5J884VV1WNKfwJh1c8YFqPm6+8e2\n4j7qcbRPoXeZHz7FB9khXfT+vM16PM5n8D2xyz7qObB2/bL/bOB0sjzdAodq\noZ882i+V9RhTpazrqXeMeT9b7r0TvJPfvYRev6ooPmWS21+DuTjwbnW5UjZU\ni0mtZxtHs8CTFkbDRyDJzRnILOqnkwsXbnJHXJGJjwSfJDvB5tiNxGpnQyic\nMf8WNDT08Nk7FhnfMD1KDRIlC59NPWVrMYKqjYx6n2kTJcJ5l/B08TR6H5ux\nMuullFSNJXEFEtutSSVU9ohifoWuAA0efoKO/ntGmV17HywAqpW/NwTmNMOL\niwD8W/oHK/uICc9lH28emmaEBlszS7FQHtWJovftODPvfu8v6p6mRKhG3Fis\nPXRNaGH/Re2PlGz3eJhmuwnLZCmBPRBmMKff6OyyN/Ikht2effzqcAUiNfNB\nuH6X\r\n=ExlF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALLATION\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n# USAGE\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: Allows to specify which hardfork should be used. Supported hardforks are `byzantium` and `constantinople` (default)\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n\n# UNSUPPORTED METHODS\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"98021dc105fbb0086dde99f61c0df0baa8fa9212","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"npm run test-coverage && nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","test-coverage":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"EIP-1283 has now been removed in the Petersburg hardfork update. Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.5.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"11.7.0","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"github:trufflesuite/constantinople-experiments-ethereumjs-vm#add-constantinople-flags","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.1.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.0-eip1283.0_1548359395578_0.7595143584640747","host":"s3://npm-registry-packages"}},"2.5.0-eip1283.1":{"name":"ganache-core","version":"2.5.0-eip1283.1","license":"MIT","_id":"ganache-core@2.5.0-eip1283.1","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"fcc5ed2d57392c85f7930bc168d80774e69f22ef","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.0-eip1283.1.tgz","fileCount":41,"integrity":"sha512-6mTXDNYIv03C1xpM+NfZuNogO1Udh0fnj6Y4leMzQhsNqykKgGIJORBH9XixbEQdLuFcpVMNSzARR2y3B5acJQ==","signatures":[{"sig":"MEUCIQCJfGtVL5vFE+IZRlI9WShWgFuE3d4ToU1fydti39tI2gIgQ/AHpA33qybRVv6BPuGOspbJUpw7+CIaU+AJFzDFFXE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":939923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSiviCRA9TVsSAnZWagAA6xoP/ioFbDCKZWtNuHh7xc1p\nn2HISKSzA5vAe1lG9AHpn7gAQU4eLbrsia4x3Ft7O3H7FqcT+UPCC0BHzWHM\n9d6yLcVE2xSnceyxx/9rs4xs5KrI3VXafmeWZ59aeoGaWlIXmyaxUEjummdT\niW+bEYj3zLGt7HjtKx9WU1cHjImIh9kr25EuYL6aeNhaKKBUtOM24aQnfWNW\nkOXVBlFcpz64hwLUg6JHTYo2YtAttwtmwzNuK7ts6Syb2WIWvgGGiDqUJGd2\npbQzdvlEPQ/46CvPtZEbTG6OaAEXZztsaaIOibV4b+Tldi2ol3KX/fdYABS/\ntk+YQhy7UnAqNgyLyQsb/R2Tdwik9MZPDiOgPSRVkPpuHx6aOk4XrBZFc0vW\n0RHSPJFUnlZLiCelRySyQcCRUk0AKx6rXejZr9t40lEGVgNgAYvcSSVNWEn7\nf9IOqjU0yphNjPyIS2NV0IzRy2kP/2NOTrcE/SrrvOOWsrumQM9al+ukk7NZ\nb5YSPuYVt73oaTDxp0kv9MNAlHx9ilVHyME9R0EfOTSgHd75EEnVJ3yrGLLc\nBc0A9Pmh06GgcS1E0z2cror2dQjO63W909rA32R3pRU0LKZwniAlwgB3WLwa\n1y29cqD2HeAw5VLTPGME4QjZnSa3S1Wb5xQ6JIEHzsGSPKOFzMOh6aSaQS0f\n33JT\r\n=kOa7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the the Ganache command line tool.\n\n# INSTALLATION\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n# USAGE\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a balance key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - When a `string`, same as `--fork` option above. Can also be a Web3 Provider object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: Allows to specify which hardfork should be used. Supported hardforks are `byzantium` and `constantinople`, `constantinople-1283-removed` (default)\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: Sets the default gas price for transactions if not otherwise specified. Must be specified as a hex string in wei. Defaults to `\"0x77359400\"`, or 2 gwei.\n* `\"gasLimit\"`: Sets the block gas limit. Must be specified as a hex string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`: If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n# IMPLEMENTED METHODS\n\nThe RPC methods currently implemented are:\n\n* `bzz_hive` (stub)\n* `bzz_info` (stub)\n* `debug_traceTransaction`\n* `eth_accounts`\n* `eth_blockNumber`\n* `eth_call`\n* `eth_coinbase`\n* `eth_estimateGas`\n* `eth_gasPrice`\n* `eth_getBalance`\n* `eth_getBlockByNumber`\n* `eth_getBlockByHash`\n* `eth_getBlockTransactionCountByHash`\n* `eth_getBlockTransactionCountByNumber`\n* `eth_getCode` (only supports block number “latest”)\n* `eth_getCompilers`\n* `eth_getFilterChanges`\n* `eth_getFilterLogs`\n* `eth_getLogs`\n* `eth_getStorageAt`\n* `eth_getTransactionByHash`\n* `eth_getTransactionByBlockHashAndIndex`\n* `eth_getTransactionByBlockNumberAndIndex`\n* `eth_getTransactionCount`\n* `eth_getTransactionReceipt`\n* `eth_hashrate`\n* `eth_mining`\n* `eth_newBlockFilter`\n* `eth_newFilter` (includes log/event filters)\n* `eth_protocolVersion`\n* `eth_sendTransaction`\n* `eth_sendRawTransaction`\n* `eth_sign`\n* `eth_subscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_unsubscribe` (only for websocket connections. \"syncing\" subscriptions are not yet supported)\n* `eth_syncing`\n* `eth_uninstallFilter`\n* `net_listening`\n* `net_peerCount`\n* `net_version`\n* `miner_start`\n* `miner_stop`\n* `personal_listAccounts`\n* `personal_lockAccount`\n* `personal_newAccount`\n* `personal_importRawKey`\n* `personal_unlockAccount`\n* `personal_sendTransaction`\n* `shh_version`\n* `rpc_modules`\n* `web3_clientVersion`\n* `web3_sha3`\n\nThere’s also special non-standard methods that aren’t included within the original RPC specification:\n\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created.\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n\n# UNSUPPORTED METHODS\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n# TESTING\n\nRun tests via:\n\n```\n$ npm test\n```\n\n# LICENSE\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"26595eba38d822263c0d5890123587d3b51af765","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"npm run test-coverage && nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","test-coverage":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"EIP-1283 has now been removed in the Petersburg hardfork update. Please update ganache-core to @latest.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.5.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"11.7.0","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"github:trufflesuite/constantinople-experiments-ethereumjs-vm#add-constantinople-flags","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^13.1.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.0-eip1283.1_1548364769509_0.9810335909073808","host":"s3://npm-registry-packages"}},"2.4.0":{"name":"ganache-core","version":"2.4.0","license":"MIT","_id":"ganache-core@2.4.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"8593fc98db9b5fb14ce96736d843ca98e70b3344","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.4.0.tgz","fileCount":41,"integrity":"sha512-T1wn3VOy1J4kxYXiOPMU/u8UDM6sWKNwUfYY8EpNPT0n8aS2P9jeHHPsZ/V/DH8pwQhhxC4JEEnXYBnmAec5Kg==","signatures":[{"sig":"MEUCIQCrUFZeDJu6/BY/O67V/Flc7euRcOUlo1aMzChaK4m5OwIgCKFSzXxOo7BM69jGHxXIoPmVohKEG61RoANNqitzpyc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":811401,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUNXdCRA9TVsSAnZWagAAIsYP/A3HcfOBgFj/60ZxFAR2\nWB4Ezt9Kajq+76Y2CfB57RyFcdIM5wUBNhAbHfxzY94LAtu8h/yCmJ01YDgA\nH78SjUKssRmlvl6kw+x+wiBv+LVQwxloCsj362u6S3co4PJKU044LaSsDCOb\ncL7/qlcn8UNhIBgCuk9qdnYr5hBVMovzS3OVlgSc6zGbT9lj6nMKtPeL/MCO\nXETIBbq72cof4+RaUn1UrQDxybG5BHSTpy/JNvxTHyuDSQ7t6xUFU7LoZeNW\nKHRV6Ef7Qg/DeWzUjPbFe7oKNcsKTAtSbz4LOODewqAF7K55ckTEz2nGDmZu\nw3iTpo83Dgyb1qQfV2mucYsacLM3Lh+owktlqjePju4UqUXEoi24iZ64zpSF\nO84BXYIRR8kCA07xP97gYxOq7bAf7pMtDnUhMzv1a+XEz8AoZgF8X/ZSFgLY\nMTivcxNs8JevnaN+QJAkpOm+4bFi8dCJjUpqV4yyjRg26DBMiF9ln+H5VZ9Y\nNHpa97yjN5WVRwcGh++hPwNYOHAnClhwkCCxzMbwEc2dwKuSnUmtwHtEfCWg\nSKYwLACXU8IaqSKOofLZaM5q7adewzPhpe3b0FJFi2rI8pny8xUdqrIkUeZg\n/DG73mWGGAYG8Wp5iLnSq38bU8kbJ2jAsKIgbAGXMB/UrqRtPjnxt4/LpNHv\npcbe\r\n=Esf7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"ea6090d74cebb3d0dde6c4339b5cadca7dda5d09","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"npm run test-coverage && nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","test-coverage":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.5.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.14.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.10","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"^2.5.1","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^13.1.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"^4.0.13","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.4.0_1548801501035_0.5354750617817965","host":"s3://npm-registry-packages"}},"2.5.0":{"name":"ganache-core","version":"2.5.0","license":"MIT","_id":"ganache-core@2.5.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"475d966f128aa1f98632a364aa95be1081902d93","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.0.tgz","fileCount":43,"integrity":"sha512-cbLEvQ4/qeRlq+JIW2TztrWa41JMnQjMECRUSkVoZBIwgH8X3RCsnYUq4A3F1r+KnZ9GWDpPqKrhsm3AXsJJTQ==","signatures":[{"sig":"MEUCIG80TzHm4zf7xU6xrFP3ALJ2EKXWwi3GARwUEL/1Xq4zAiEAha+lb7vSU1RrGhL2wQHmi/GsLk78sxdIZMkTo3MJuJk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1300957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdxm5CRA9TVsSAnZWagAAky0QAJP5m2uG87rvSz5cGDGy\nbCHgO0RcatPW1V2Uc13242Hd8akyouXYRVn2AggFgLtxp6PPGXecOVlOypOx\nd3fJKh/ph7AfDdd7HUZirHjL0YPutSlX+O5+WkAQTo93mZKOPSBHCosUe553\nHFZTDfJTrAkSY5rKJY1wpihqWhy68RsyyGEkaYXN/1yP8K4Qov1fvUx/7/4n\nM6WmRktoPdtpGxpKX9s3nS532czRJo2u5MVYsHCeEJqi4+uYOqT0coJ49I9p\nDv/XScL17Xjdvf6NHpijnbnjQXHhjZBrHZkGf7wqlOzkxE3okonaas7cEhtP\nHfsUm/wjPBXpopdJSchAHqUOWacccNMuyZ88rEEBpfm3JvcPjb2Qj5Wb0iDe\nr88P8Rw2tanqhPQP2badu7cOLmmErhaf1dsJjO3Ba3i2dLemGPKYI7Ndvnej\nA9UGnpoILv8PM2z+gYdNPR0KOcv57xnw/FRcnO8eQa3GliYCiL8hnQoZEYLr\ncZfkpE5bVnWwf2IaxClhrnrTnEvwiyTZFuf+bllSvAswVvLpyt7en73Hb1Ra\nJ8w43oGBcc0064GlHidQn0L2mi01XNzwTzlgVhGy4WLuP8rda3Ogmg7XxVgm\n6rLWANL+K3O1Qoz71LumgEZM0bBQjrwBVh1sKQLgVbu29YrKgH+ci5uVjMkf\nN8+g\r\n=+CQX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"53d2d82a8c605e1527e9c7701c29888f5fa89a06","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"^2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.0_1551309240370_0.9073703719198822","host":"s3://npm-registry-packages"}},"2.5.1":{"name":"ganache-core","version":"2.5.1","license":"MIT","_id":"ganache-core@2.5.1","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"731e88db70c12ac8a7c2b56a055483338523b739","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.1.tgz","fileCount":43,"integrity":"sha512-sqTpmUtoExsUZqCqMdIZ+kPmXXu/fab755LpCaaty2u9EHb9gfIM9f/8gTpg0biaJ7LesbdyTfAbw66wHi4ujw==","signatures":[{"sig":"MEYCIQDBVxg6gGWw+c5bidQnkhm/VGH5eX8SjAo/EJL7UKyX5AIhAKkhceQ6YUiSnoprQomvbZH9GqFfk02yHx7TlPo+j8g2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1280938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdy0PCRA9TVsSAnZWagAAGC0P/AlN3TIYbkMbyVMQT/Z9\nSRyirRUBcFMQvRK4eeAutl73aCgde0D34bhkJtlg3HMOX4CZrNkouJHQefPJ\ntJa7UJeeRjvLBPOUy/8mlYsGgmhsLIT76JPbrOwrMAoe/EFi6iID8d87QNGg\nTS9irESMOIgjztGujaE3TyUvY1hd0Cv+X87juDSE1zDGnv5leRN/nDZBhwEC\ngn61JfMr7qA7RYyW6w80HGV2ZBxt5NP/dSSIC4z6eMea72LsJLJClX6Sm8YS\n/qxjNa1u5kvelb7HQZfk1/YV1JeeR68ofZ85Cg5bpCfo4u8QzeWWeG+J62Ue\nFoyMuCSEZF9Jzv+JNXFZb7b4QQ/D07/RnrIqSpl9VfugI79FBcHJjfzPMWzW\nSD5kfOD6Ftt36gJiMMa/5T8xDepAznZDSV75xxcyIGEPn2dmBwYH7RkEgZFI\njqFym5+4C840rtoEA+6F2mmSvqv4RvVTqOd8BnaihIfsEAMZV8zz5Hmhi32v\nSmPJ5aNAVvYwmZEDbg+zPck66NEwaaHuT22FjSDz/gQ2Zp41CLP7ZeyV+QGu\n8IiFNFfRDA4ebnCX4AW04nRQmv5V3bTcWpV3TncALQyCW3phfDbMY4VjUHFN\nbxWGUqFTuHswW+eZwELtY1GiB0tkfClq/xX7JVh7SlQKCFW8UkWSyHDVNeLn\n6P3p\r\n=Vint\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.5.1.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.6.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"^2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.1_1551314190471_0.9806263667744299","host":"s3://npm-registry-packages"}},"2.5.2":{"name":"ganache-core","version":"2.5.2","license":"MIT","_id":"ganache-core@2.5.2","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"0f8d59f46e5c4669fab388ff19ded5de74a7d02c","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.2.tgz","fileCount":43,"integrity":"sha512-uvKqc1NOjsoe2l6jdNstQ4PMOjqGPVMLo0MSoajKcpD2r7cBqofBnIDS2JdzRbMUzrRge4o8pl4RSgOcthiuLQ==","signatures":[{"sig":"MEUCIQCQOkwETOKZT9dLxgq43zsngOfEk9lw+BmUtA/X8ompRAIgCPG7kOruYn7jNin6j3TissffLTfV7fSsTqzyTw8kBWc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1301458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcepLcCRA9TVsSAnZWagAA0t0P/0DajW/8m/AvzH6b55bq\nY2hooWquWBUvf4sWZIREGECEULlyJ+tXbASvd3K17TvqwpYf+///GpM2ehVX\nxnjdsfCvMBPyyzcK7U8E3ZFNjlVKMrKztMyL7qEM59TT0VvH5kGxGMcaBUC/\nCm26UUxgmBU2BiDxMgz0Q0Eo6/Gs1U+ozCYdIylpG1JRkDW6I77CSUo1ROi9\n0kS99w/mz72tNZiWULPxj4JtsywtOAthSzKuKhlqHh/6p6PXIqxMhMKQ1oyT\n+zLqZralt+eH8myis5cwTtOFk5UdVSZ9D/umMO2Numaj7YlLUeUlSCu+dMXF\noA+w1FufXkwEjCDWsFB0tSLY8I2RaaUlstea/eHIlLmuV4+u9RiL+s6OD1P0\nAaGrGk19fTENxtQ9T1gbF47/U2xNiRffDvNtUmP/RS+RpS/bgbZi0RKT/i6W\nxsFwGGojDR099HVICTsMV5nuH4ttFSuKGVACCr29cTGFWWzRMeTyTkYirT2i\n9jwmJaAd9YIeKxxc4LppYBWnB2h8IzQsOec8D1dT85Yfs5WeLRnyrymePNpn\nRRvFLJX5fRucxcAABltVXjhkmcT83Bl/bGBCgbMvbf5Oo1+2DZpHEeGBbjhd\nB/Z5L127V4okA8Fpwf8ULfQ5FKEEKxf9vOcQ+CXQydBtXQneTNOE4NR3H7co\nTVNN\r\n=hh9B\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"f1245a47bcf607d33bfca472b84ff6276ffc4150","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.6.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"^2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.2_1551536859888_0.28393965291269296","host":"s3://npm-registry-packages"}},"2.5.3":{"name":"ganache-core","version":"2.5.3","license":"MIT","_id":"ganache-core@2.5.3","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"8c6f21d820a694826082dfbb2dc59f834a6874fc","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.3.tgz","fileCount":43,"integrity":"sha512-lTqPSxgWS5p4zJ8yNbhhsBXMPfcuV+jjnnYtsbJTph9L6InA6UkNpO0hhHuDFWF3GpblP3LjvWPpqW+X6pdZGg==","signatures":[{"sig":"MEUCIQDs84xWrH452tvMA3EEAseBLsBy2hBJejrUxk+CmI6e9AIgPgT/5UvD2LGzNNt27ukgOXs7X9Hod/21uKwpxoK+W7Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1301442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcepOfCRA9TVsSAnZWagAAQZ0P/3jrY7YHNc7gVDaFYZpt\n2sd3EZ8yAPbOKhiUUsqKnJoXGmBlIPSLrNvjkHQH3qPMU0bX8FTsqR3sCVob\nF+pddMafq73kANca5eYBQ/tbmftiUl20N+YmKd11w15hQpkCQHn8a8RQ2YZU\n/kn0Qdonhce4VofLSc6rcvgDo2exoRgoSWWBCG6ir1TGaXpu1NNSqQoM92Yy\n3d5JkRj+8n1kvzJHL7xU5V5ZuddmwgMnJls444cS+D++4OOm2TPvlQR2eUVQ\n7pMrTAHrKaXqOA1OcTYUtRjzaooEPK8USzhhYci8Xcwjm28v6Sf4KirO5Spy\nALrxsyAmyaHerSKW08+G+/FgSdDxlV4w89XWK2rYfoTyMxxqVHpt1ddt4q7d\nPUq/pLgNWo5VuG9E0xSh9eeIb07Cz/NNHCRo6vMFu3IGU3K52rCwfKxeg15S\nFUkC98zEKEvIm8sxtMLy68EcicU1hBNYmq2P7Va8HB5nYfpnaiAUmRVck42v\ngldPGpfFS/FZyZLdmxjA8VQKmh9YJpj5axojHtAXs6vJQccfldSTlQf56wi2\n9LJHXYPfiFMbLdDgFLpkmu6oXMJjFD2Ev754/Svf/Jqu/KF8pjn4x7bsBYoo\noy1JDBAD09MUNH36c4mko6ZbTWbtKU4tPP2pHdkB+4gjFw+xsC6PK6Bwf7MI\nYV+O\r\n=IFj3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.5.3.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.6.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.1","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"^2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.3_1551537055140_0.3641851783397567","host":"s3://npm-registry-packages"}},"2.5.4-beta.0":{"name":"ganache-core","version":"2.5.4-beta.0","license":"MIT","_id":"ganache-core@2.5.4-beta.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"f5da6c9062c1741cff01a3ebcad6b9d7b1e9c4d6","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.4-beta.0.tgz","fileCount":44,"integrity":"sha512-lfuwLqavvatmqZK+uFMhrY/OPT11YDLjBlvUrrbuKMiT978C0aYMfEITyqhsgK2QWxDfXO3yL+w6M7J88F75YQ==","signatures":[{"sig":"MEQCIDsmekb1NSryQgVKlEGIayEjivgvAuTPnPwXiidmKlZmAiAk+herjHVTKbC02MbGdYF7zVkj6l7zoQ37Bx5x6vry3w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1371290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckCMiCRA9TVsSAnZWagAA1bAP/RNIGARZWsAt3jIupU4d\ngprioFceAqFegUIDLVWvqv3zaOUg3HMddT0ujdvAHHYEzhwppDaGYHpgsViY\n8Zu4pkvsTr/TPvF5t7i7d1c0VgiYlKDFyQJyiYtp3mTDA/V33SLGP+U/fAcT\np2yyNWdWnHBeKIgUeBBAkePdKPNDBecL5nHMgr7j+qoo89GiQwEmJH6rR+37\npXzvkYb4aiZn/ZhpsHBHxy9XZF+kFIO9iTetcE6VLWayxeBVZej1tW49l0AX\nOX7OS7vc7evlBfkFNoRtdylb/HjFwCk3vbhq2HCTzTpeVjS0eEpj1aIGCbTr\nB48CK/fXs1z5hzABaHOVkmz/2nLWcgP/Xp089bENIZq5aBfO1VPOcLliDBzG\nrCuKLAwGScm7j3qKyPUFNJLicghI7Xd9cF+4sIP4gFt7IUegX68kAoMRJWIC\nSd/QhEvc2kechvdTdt6/T2y6nj4LphdQQsShBXHKkNS2p+gI1Il+VDWIlObC\nsTM6RiyRxqEELw02Us++DqZr+A+qvvVYHIdv6XYcLUHoGMKxMcEuovZNuXUI\nFI5qbZz6C8esP+fXJNohPnIQ23Fp3iy2YWEXhtrFJ7p1/+41s4CA7EywODRq\nJum4iD1I052oB7D8GnxsZNqHatH/BGreJfu6sgyknFKtG3UuAP0II5ck3sDS\ncqnn\r\n=e3Y4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, and `petersburg` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"7d2ce9fec918bca167f36413f3eeaa63d0497213","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"Npm can't install this version. Please update to v2.5.4-beta.2 or later.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.3","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.4-beta.0_1552950049467_0.1487013009747229","host":"s3://npm-registry-packages"}},"2.5.4-beta.2":{"name":"ganache-core","version":"2.5.4-beta.2","license":"MIT","_id":"ganache-core@2.5.4-beta.2","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"name":"cruzmolina","email":"cruz.adam.molina@gmail.com"},{"name":"davidmurdoch","email":"david@davidmurdoch.com"},{"name":"eggplantzzz","email":"pobol234@gmail.com"},{"name":"gnidan","email":"nick@gnidan.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"f7b9070bb8f6b19fc839b42064d3a0811e6ae36f","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.4-beta.2.tgz","fileCount":44,"integrity":"sha512-ow4iztcx1wEdANAXXlr2lYbjJySKEpeLnIj6Gd2FOBPHKlWsCA3Z8+7qjRJk/OMyPUWdZqcYIecuIUV4TUJY5g==","signatures":[{"sig":"MEQCIE90mllw0Tc0Erh6tXB9Cv+fPxAxMau9gpBWa+pQ4IQ3AiB1SCzW/e1FLI4UDQU+Ipa8gA6/omRxMMtH8SfQ4yl+0A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1577558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJckEfkCRA9TVsSAnZWagAABWQQAJTmvslcAbt6x4UJPp3k\n+mlKFHBekDUjmZY14l0VtO3aCjOgx+qEDm+DfOVddx2wJwJ8XwzCzfWEyN3v\nWCWMG4cqGeRGKuMk/1jWdvEabv2CVTC2FEyE56DN03WJsremKCDo69D3ExyM\nb+EQVl8ywVi5lBx96RUiNml1qMX8iWAANRaMrX/5KQ4Xf0ZD4sdqlwT1DQON\n7FvVUrA6jDmw+O2zNXPepdRi6yJ6jUKM+rbkAnSsb9nCqqZ8eexuPdH/yp90\nJJbZbIiklhaINaDtsrQj01cH91xAiU4wagm8Dp3CB6D8AWX13Q+TX8+I+R4z\nW/wIlG8kANJY028GRPvtFnEaDlC7hM+7IsgIERB/izvOqdb9pDPa04SIMUZL\nyK5CVJBYVT3prKxSlnloibsEGglVeann+Qq7+3eGcLasvkVQNy3TYO393ngL\nvEZ89jFcLv0HrLSHrzLNHE8dqS07d76Fu9jtpl1Nyjl0FCG+6Z8j9VOrtCx6\npylV+YfjIUhAFB6UgE5mWVtBoiJDhdlB70qoX05Yj+t4tdDCIKx2ey8eJpP1\nbf7prdsKTCBvuVSGHsAoD2YQFgSNdK1q2diM3x88daQHhfMIxAd3HUgabYuh\nBxO/QBwI0MVZGy1Ko106HQcDbi73nlsgDaGNRW57oPo6zW7VZoMDPwmFkj5i\nLQm9\r\n=Y+P6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, and `petersburg` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging. By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"42887db98a8bbf3bf7c1ce874522dfc774199acf","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.3","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.4-beta.2_1552959460226_0.5730752085695687","host":"s3://npm-registry-packages"}},"2.5.4":{"name":"ganache-core","version":"2.5.4","license":"MIT","_id":"ganache-core@2.5.4","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"f068c49ab7a2435a1ab50eb3797663c0b519cf61","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.4.tgz","fileCount":44,"integrity":"sha512-h/AYUOzUiuZMto5f+yEABv0bVRTqJnPatil3rP1rRCBeIDkXH0mlyrW34bbU2jNFPLD4dF8ZP1vMWnpkgS9ZKQ==","signatures":[{"sig":"MEQCIDImw2JSyYX8peiiZVzog3c3YcIfRLS16Y7hqDXBiXFiAiATpgwvHHTBVAe2L+Rjec5aQvA5o7YqV/H5c+uUFhTHJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1577537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpoJtCRA9TVsSAnZWagAAQNMP+wd/P34tWR7r6YRvCgq2\n/CfajoFlCi0P7S+3zvhfg8QEd136p+dkmrITC37QIfJkN7vDQ0OLQXfWUZNP\nwCZEywg5Wm039p0cyS3oeY+zxKdySa8xZxXYxg+QFSHt6zBu8dKVcBw0ldNH\nbob/S838IaQQzEU+SxzGa0ett1b7xo4Wa5ukt9Qf9ZCbXPFB9gBSNCe2/wki\nnWPRE2Xp//5HT5MkhNSuqjioywYA1yicEPtFd53C4ctSo7Pm/3S3+pTswVWd\nuowJlLvc9wzUtWndyyAcPVIATvkcAdpliRfS4ZVqE03ferzBfgHgo/+BJFxu\n8WInw/74jJJOs+GLCn7Gq0e+8vCFZBgmhmIGxyDvc3bYJN0Pdn1JSllQYgmD\nGM0Ao6Csg7QgRmPg6vIquQuSixPGSZzh7BgYc/V/227POoigTAnHILOv4+sn\n1SDPjUPn3NxICakS9lUxNPRlSk81d3XYllUfvxmdIARSL+ksKN+zKwOD4YVI\nv0pWLpCzOyX4IGEVpP3cNUiPHcUjNo8VQMfheeVB+y9j38bmTfeMYkdHATwd\nKMT2G73RTvLJHRDhY2AyH2Swl3e9qm3A425qGX0iuLBx0gGho48QxCO8vnWX\nQclHrYLQ3UKN9pVjMjmMAExd9qd1JGby7ime/ZCNyBLhWdRFFhKo39XzIwcI\n2S/h\r\n=yI0A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"dbac77a5d2512d4e656931df74c6bb16b4d484f5","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.3","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.4_1554416236074_0.3027731030951524","host":"s3://npm-registry-packages"}},"2.5.5-beta.0":{"name":"ganache-core","version":"2.5.5-beta.0","license":"MIT","_id":"ganache-core@2.5.5-beta.0","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"2e9133d19bb118ff6f595873f9c15c7beb9114d9","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.5-beta.0.tgz","fileCount":1136,"integrity":"sha512-CKNIaCZqh49d3flrAbRgw45LySPNZHyrT1v6+DuqvYU4xGdVCucqlN2W8OG9YxVFBFpV9DFa5Aas+ER52zfD0Q==","signatures":[{"sig":"MEYCIQCpTLZjMbi15OMxIEkaBbQVlDg4vpcpe/PBTgmgdnJfhQIhANAeXX0sWeTEVz8oHsShrDpAz3fiDVby0VqZjFPivrFX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35223335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcq7bDCRA9TVsSAnZWagAAizQQAJJj9teFk+GMif9GeDGy\n1qwvjgsDXqoEbaaXC7n2ow9gKe61zh1pBpnf5HVcgDjNIVjNtmAXpLOrqVXB\n05IZgc2dtLw88z43fqjzPiOGhi73vGhzeDD/uqnbhfgwdVoDzm2ANmmoCKof\nNLPpw9jmjyxwXbxF2mCVeWeXvxPXA5HeUp6NMZnDWsZ9mhw+Q27hCMNSVoGQ\nab98M2MdyAEifPOnZdrHwVWP/7GuJ4hUwQhMtE9OKsnc9rOvTLTtkCTKOFIV\nNMQcFl9L+rdJQFFGCybnZ938e++7BU0xv9Zzxeub/YZkPQVjl3+l3Vvo6TB9\nJrr67IOLyfroLNlOO9V+ASPF0w1HPaFgKkstWgO6OLEci9OOgIx9TxcbHT+c\nChUbdJpQ7211EZViAIYkvERwsoA7cxC4beMEuciNWQCXQBLIhFJTF8o39jGT\nIpxRyy6rn1olkKWEH11nsY4swYCjpqVxB1ZErW1FEt5sKhRezw2aewhjYdI8\ndtKiRuGQIK9CL3M1z4I4xsyCjQ452obF29Hn4JAyruI+Zl/NjKr6TYAGk1pE\n0zdYEFNAmvIk+GLYSyMdpadLAlXFByhF1RwGB+dUmNTUWSqFfnr9fBIETtWx\nF8WATg99gDyvHR9xLjPiQ2u2sr1PYs652FWve1wo/ZU9xWnK5pfTnEr6LORn\nI0sC\r\n=XOH2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, and `petersburg` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"29197896c286b2519afd0fb6cd591f66949dec39","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.3","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.5-beta.0_1554757314510_0.24969629510675762","host":"s3://npm-registry-packages"}},"2.5.5":{"name":"ganache-core","version":"2.5.5","license":"MIT","_id":"ganache-core@2.5.5","maintainers":[{"name":"benjamincburns","email":"benjamin.c.burns@gmail.com"},{"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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"84da56de1957b6200a2d02934853fe7af89d260b","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.5.tgz","fileCount":1136,"integrity":"sha512-mrvPCtDjFLWmqygCx6LngWfA1hv6DH+iisEVYxRmCujstcMgzqi5UQdcKprxoO2Jx9st1fWVvDLi/tc6WHPGoA==","signatures":[{"sig":"MEQCIQCkZJP48YKjXftVBbE3ntgHCiK6mvMBvxLZEBo0KdTX7gIfQuxh/KeIV0ZVb27cYmHM3fTtCPOhUSfAdtcVBx4Lwg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35222883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctOFCCRA9TVsSAnZWagAAdLsQAJw9uxx+RgVoAOHHZX4t\nQzAOvYprr3wXDqsbY/PocSsTDabfqXjKAnJ6wvR2ZFxh2XG5HydFX2VNZPqZ\n4+YHE5580jHnMbcqiSNTV9YQMyAbpo5L0JkdpqCwbWObevAben8CH6BFdMs/\nsCDliQEVa8ZyL9UhSBo7XDz3Pkvi95c8ShkCIQ5ysAsFXcrjnsrrvPTKcavF\n7CC7Np4IgGwuxKhKTGbt7Xx6nDzyqnC+5GsI0CeC+ppYhECMDHHWzyBSb+he\nEw6gkPYdVG04W+Xs/h8ektp3bRTRL/t06dTPubvcEXPWSNiVPlvqMi3BbZER\nIYmdKVUs3g7kciI+JhUhX3XIYdu3cz9Ut3plsTMlWS7ZTbT3QVmn9bTGhvV7\ny7hdoxTqPjir+0hiviMDAgwOZiLRBVjNfGTlfOsP2aj7bQ5HGL2fFUegnqAA\npXEPczYAjzmheerEQA7PkC4db22E5WGCPsJbELWnNoVe1ct7d6niJZJZIzQ+\n0MBH/BmJNy2kbEQgMSLyODyHGmM/MjUEGbRcJ3zJ5bK+EaUWEu6GmGDpvuiK\nUxbAhzLtxzijXVs8YhaPZvV2VJfkp7KLJdcJ4FX+FbhlsuMHRNMnJNol9WBq\n9Hmw9aTuRVkfYEsoLfzzOXUfAtX4LlBABk+u06iNgfd2Zk1xPuHCe6kuwIhH\namtZ\r\n=ulKQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"7a260ebdf969de93696620a44e99697fd7c8bfcc","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch,sanitizedData --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.3","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.0.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.5_1555358016771_0.31347506042085005","host":"s3://npm-registry-packages"}},"2.5.6-beta.0":{"name":"ganache-core","version":"2.5.6-beta.0","license":"MIT","_id":"ganache-core@2.5.6-beta.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"34e0b7d97369dde857b4d2617befc1c1a18c6afd","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.6-beta.0.tgz","fileCount":45,"integrity":"sha512-25GzUbk2Ul6VcjEgykPr6jyq8W9EH+pVY87mU347EBDHv8f7KnnqerNyniEefJfQX5WcWGnl4QKf2PPfJMCfAw==","signatures":[{"sig":"MEUCIQDERveowROeNTFvLcxaKkyjm2kUV/FyOCVyfGw9Tpn8FQIgdJaIIJ1m8/sz3VOQhTKFiWHlw9hKJdUBsLR4ykhvok0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1595108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyMjOCRA9TVsSAnZWagAA0gcP/jjoSEiuv8K7H54ztfSy\nTINWBzjfEc1GlauFQqhKSVN1xrwcKdOr0QJ9Vim8jmMDdQUz4ksht3SQWcZi\n3T7s5F7Q/4V43ABUu2MXoxcl+uOj/CdNZE/KLpTlSr1PsLPT7f5eGn3neGIn\nPhCRwammlU9RKVR5U7oZ9YKAM22nIL0puKka9W4//kABJPJ2d2CqmitdWDph\n10RVKaJZQu+f75MKVSj3YAVuwvGC3ARhJlm5Yds5JUQeEMzFD4Q/P4zZ5zje\ndt9yJUpnpJlA6KepopX3VUeKX2RCnTfTFHCqmZYimGe7axzzJT2+isc1JU/D\nbPt1nlC2LeOHFWUPjvQJ+zMBFyc1bueQFDQxNZf55g98KmorMeUvcCvih+gP\nq26XCKtOX8Q8cEHOSULVk30/W6y80ZRK2zCGYwpeKXScqbDFut1PGcDun/uL\nLBZnxS5qWYRUraVtmGYnV69sLoXQxLxDGTt9kflBUjaEIQ1yBvtUob4fETQO\n9cWLD9uZcf8X2nAA5ADvdHpq/xsJXoGmjYoHFOnZJD4pVq9sMyWsd+KB1Bxy\nbOck3LfaWihIRkHwApted/+bvlQf6QXsedeKVPabp57Q7AuOopL2KHJHFo2t\nuiBeM4VvLC5lE9Z5jANcRd2BuL1RBLod6D+IWQgeRWCNTNjVXZQJJZpavbH2\nn+PF\r\n=5wXU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, and `petersburg` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"d86fa1e944769197d878721ced3844d959a412de","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.15.3","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.1.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.6-beta.0_1556662477299_0.22977800881615584","host":"s3://npm-registry-packages"}},"2.5.6":{"name":"ganache-core","version":"2.5.6","license":"MIT","_id":"ganache-core@2.5.6","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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"dd2ce3ec6e86930f8662cf4985c778cdf9b6ea79","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.6.tgz","fileCount":44,"integrity":"sha512-Xvi5iOa8TQMbYCpWVrjnUHuBWFRZl1hJeNaxnytM2uh08elVXuKgcDdH8g7j1+r6WgW2FQmoowj4K/m/G999XA==","signatures":[{"sig":"MEYCIQDyENB/xNxDtTeVLAjjYU2Nyu/9iokDW3o1mPHi7hyvgAIhANOTHOEMNXsXrQqFGDYX3ixvWsgsZD2HNCo7dDqJitJy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1589991,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAlYdCRA9TVsSAnZWagAA350QAIj/Iz+xw3s4j+Ifcw3x\n+88hLlNQIGH9YaGLRLD11HvgzQ+cs3L++Ixji5OAWpY+019UHEv/T7wIQECK\nRxJEHMdl62teD0/rG/iIIUJqgJKpBHRg9bKLGh7r7UnzesT5ZaG4WCchaOsx\n/7OA8oj5gjjjabMV8IEBzHrMYFVHRy7CXaVD02HP8P36Zb9h4fKg/Z5B0Ts1\nnNG2AJTb1SSX2w6miIj0nkra55Tl6S1O8/EbqSobyihfz4M9yYUrb2sWxYBQ\nbmfZ1yugj8j/ToAQa783SDu83RxLLN6ltyt+sRDoxpQ56zGHk4+dWaCmSMch\nbfgsm3pnkTnlqOGsZnQ52Kxo4aQ0wh9XPXEDpv1Yo5QyGtDwMi/VNj+Pw0jJ\nphRC018qTvEnWkV79SaRBGHDzGWvvgu4k58R2tkjdLlClZBMvEHz5A4fVdC3\n/yavpTYDmHQjmhF9oQBEJu7Rsgt3/tvNFUov6sh/Zl/nBsHhROjDEx/YGLtO\nfp/Dgaae9yw/FL0eQVxctNqfs7HEbfHgqhPFEljRHf0NyhUnOjjzkESo11eW\nisg/U1fQl7LlRc20JXS2k4Z6cK4hHL2kBNJFgxhadiXpubXs5XIywOJTMzvF\n4gh9vuxSD8bmw+EqSIS3M1dH9XLyAh+104BbnQxdj0VwuWjoiZbxW91VsfOz\n6b1U\r\n=3PBH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"4ddb821d3b0c3738fff9312c399dea365c8f97aa","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.1.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.2","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"13.3.0","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.2","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.2"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.6_1560434204816_0.9156559188700895","host":"s3://npm-registry-packages"}},"2.5.7-beta.0":{"name":"ganache-core","version":"2.5.7-beta.0","license":"MIT","_id":"ganache-core@2.5.7-beta.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"b1291aa0c5ae60f10b547f7d412d7a400befee1b","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.7-beta.0.tgz","fileCount":47,"integrity":"sha512-YvHsYoGIEcGqE+Z4uyf6uuOAOkY96hbpDvvsbBiDZ8N2jIoUx2HAHs64Q1CfBX06G7WeRDePvb09cNzP1nypqA==","signatures":[{"sig":"MEUCIAi/vVqeaYir8EOvrFDGAAelJBkkU2VWXnvyuwXZ3gyDAiEApo8usqM3kiAP008xODy/o7aEAF0lGdIRK5V0hGOWrnk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1658100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdG8zTCRA9TVsSAnZWagAAY/sQAJP2/01nHzCtG0xKietr\nyhyHxPYzP21AowiZSdSooNUZuqHX4qSQPu1Vgf9u7agxVNEyu0SgwRnDd1k7\nGdow/9nmHLdwGPiLN07BS68u8Onxa+ZvEepD1bBvN9XDh1BYZfDLkqTL818l\nC+TAUAynH7ClIwgseKXX1sdSfvQXGxRadJk3Iu3qIxcgaLat2QvVE+OC0lXb\nzXpAUL4oW8xLMrSIQ9ApG0IF9Sh4uurgrfcGHaVFdbm+R2uxqGIfw3diGZx8\nI2+l5nWt0XTNOfTwQ9WOvZQmQnjIuXotzPUW5/sXO3cwDN6hyAR5B8cPDvXE\nuj78fkIDIzVhDVv5LVTTswulya7lM4DGbeJGIX1iVSKU8xGpTAJtu/akUiEG\nC5KqFR4p/EWSjnSe8PgUqej1cQ7vkyAOGvphgna0/50zPnI/W536SooVnguK\nMepdGPFySs8fByAl5/HETfC+vOFycBj83kUGA6RXnNcq9T6vwj2MJxW6X7MV\nzxZs6rZLSP4pfQt27jaMCnsQUx6BrjCIgTna9FxVy/PSLUFyYY0upooHowmV\nnlQ65WMNuGz9a/Z7uX2gAm71cyybkQqnUO09R09JoWPVHvHyp7kKT9oDoS2t\niUT9iWczrSSdf1RRoMVJVcRtsH0LBsMg/QJkgugVKSpAYM46MrHJOcgmkByJ\nGZbu\r\n=A88Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nserver.listen(port, function(err, blockchain) {...});\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, and `petersburg` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"a0d6d8c8d728fd7eb2e89e56e5c2132bdc99555d","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.1.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.7-beta.0_1562102994241_0.11335433130951977","host":"s3://npm-registry-packages"}},"2.5.7":{"name":"ganache-core","version":"2.5.7","license":"MIT","_id":"ganache-core@2.5.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"03c74c8cb20dc1266990d0f7fb4ed3f71f55f6b3","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.7.tgz","fileCount":47,"integrity":"sha512-/v5ak4QiJzOCVhyXtx/2QeDXjDdZovAhX6EIiqnH2ng9aKzG5h59Y5ZyS1xzX2pkLKDY0uRA1WIBdScsEJyi9A==","signatures":[{"sig":"MEUCIBp3ChF+9Nh7Yetn0+l7Up/6Pi8d7jj6KU31XCNnSJcKAiEAkRZA9ov29kEsCiKKkY08Jl1iY1w5GKsWojGg89qy7X0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1657647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJMzRCRA9TVsSAnZWagAADecP/j71mVl/w6XfPAD78Lu1\nWhbtnx9jwCgJ0xRRCY0rTjypfAGTlfRAHNrOJukzzflHmKYVfr0Wkx51yO/n\ntFHVoToTP72m74VjEi02BmZqiIYB01zrqjC7i0uKzDkZh8eTP8W/zaIFxSpS\nm4S6LcvrG6EwC4aZ/A6vjxbfRb9CjsPjZ4oGVcbsvMoIpm76weoNzIuX7K6x\ni5+fHqZtr1EDqoae7PuMTz+pLdLo7263SImkVDBoZyJcySXdU8e79PHtHmil\ngZ2OSw63s68EeJDCcWXTpNm+M/DQSLEgXw0R/IcvO+luHBLsQxUs1Hk7XtCN\nBccgOLrx2OHG8kaFB1nIcsc7jLN9WrTn6d+ERGd3PDaxttX9lMHT5gmONtrg\ncgi4K1pLOSojWMgrc1PcoiwogK5VZT1Ywz5f2CXYE6Fktgia0kmcdAEPLLro\nbcr90AILeHXBVDXSfLUcCiVGEjUF06hvwK/m3eZaNgblyMNbnO3+gucIEdtn\nK82OSNWtdMRljZ/MXEqmBRusCQe7os/w3CREP/dx45YQAbap2qxcEiAFp1m7\nmmAfRz7wma1XJpYkCfD1vcL0wu6SrFnSAutijjvXnRny0UGhYX+HgENNTi19\nR1/EY/eii75cjZ1Y1ao4B6WGRfvReyYkgFt8KRLU6Nf4KB1vLWuk2cyQPUED\nlcH3\r\n=wb5+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"b218cf29d96f05f50ba7b38c8463f07296175dab","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.1.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.7_1562692817043_0.5678197419461597","host":"s3://npm-registry-packages"}},"2.5.8-beta.0":{"name":"ganache-core","version":"2.5.8-beta.0","license":"MIT","_id":"ganache-core@2.5.8-beta.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"c7598b2876b2a2aa3cbfe0b640d0eb655ff6e392","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.5.8-beta.0.tgz","fileCount":47,"integrity":"sha512-4F51x3NfSQLpNSHPThyrEl5JpcNw7aTdzC8hUsifQGQd80cURJGBWIoSTysx40Wkc1FSQp6XO6ge1SUht6Dblw==","signatures":[{"sig":"MEUCIQCrtGULEpJ1zCXwZotq2JxkeVrI5Weoyppnr2gXcn6D5QIgFIWHnh8RKNgX24F3z6mPZJ8F8VPCTs/4ccX2MwPiJFw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1659021,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJNNGCRA9TVsSAnZWagAATpYP/351lYoAz0iLf/7KNBND\nty6rMyMhmH9YMHJODo+EaQ/qMPmE6UtsA5LLbqOYdVRMdu33hoRoEhVaFDc1\nMz8cV5oCx1KLUDFr4fUfrLrW7rbCC6RQyUd7WeXq1TdZMojyQCCWj0SPTFVv\nnsH2Rp/mJ5K/aU0C8u0rAKI4tOkbUfjHts5tY8lLb5dhhxGIkchGcX9JW7fe\nmCY1rnnb5MR7HxTkq3Q8Bu0Buz4gzIHH/UFWPI18CDUs/4zx129RVP4i9sgT\nvtvUnSRRavORCE9z3Lzcm9tlYjw6OY0AVFQs0sWzE8cMQAzKiGJYi6VDn+PF\nY/Sxl6j68HkVnOaoKPpjfOEuKmADmoJgQ8uAlqdElbEWG4C/Y6ZqnqsOi3N4\nZg8I1jBQ8miT7t64p2I19slFD8zxb0RUEggHMykNqsBUDQVppRe8IpF68CiK\nWfkz+ivsVvL7HcotKbAXkvaKfYZ4TDra0dLuunJgA5bK3ifMaAe3HYYRNsCO\nqLU4Ufc2lSNS2jH9H25Aw2wEDeaRLoyx0g9yrHqtUtEAgXF07u6ryHJswVil\n11cluxEqzsUSQZ1okbC1PLTWJpGew09kdeEXggjSMirzGrLgvs5LDOUW1Je7\nfxnY9IADZpxaoXaQM3lEWCCjs+24bHIcALz2GWaun238+i9inTVuBbhQmP7V\n+q2T\r\n=08Nl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, and `petersburg` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"aa5e32cf31cd5847a36f112520575fdfc3f959c8","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.1.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.5.8-beta.0_1562694469566_0.712792352589344","host":"s3://npm-registry-packages"}},"2.6.0":{"name":"ganache-core","version":"2.6.0","license":"MIT","_id":"ganache-core@2.6.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"19001547893ff9f6d494fcaed66c52edd808f3c0","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.6.0.tgz","fileCount":47,"integrity":"sha512-TAT8XCjORmRpWko9QWKWGbdZ8/3nblKgralUWdySHXZyGBVRoHyEzjygMYZoblSXXCWuYEmx+T1u73Di1tE0mA==","signatures":[{"sig":"MEYCIQDby0Rn3bz8whzjUI6RtGWKMbVMCaW4CBHnZzCcLXVLIgIhALDWDbgWyybyRBjjrPYRbqWz86ohsVmkHWF0UVV5Bhnx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1659000,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdL22SCRA9TVsSAnZWagAA0H4P/ip69q+8Sfvp0jKoJHfD\nxcM+9x/ltdSNxqxHufSSS34sRz0Xv59MyPCZoaM3TD2AVeUpQWfhpci9rWNq\nGKf+rx2DUVKibKSdQqJ6QoPNg77CkLhfT06lXOeAtqEPv5H+uhSSvoCRBbK7\nXlquVk4KLplM9WhDMXofWf170luXCIHfJaxfM2AbGTRGR/oTUkFLzWn75/2Y\naqR2CN8O6dknmEIpJTbLB7oNh+JmMRVruMzrKjgFO4OTjZY98zzLwnW3Oq+u\n+SPCpQgMdjpAfH71hQcTQ6w4frH+WaA2VppMSEwfVFS5IiNdf79ZWrSx82NR\na/mfkzSVf0Y1ZB8GvF0x47u6Exkw+PC2e8FsS+0AAgcwhxpf1+aVK+M+vh02\ntDM9nn5lUOrzdeNEDKyBp9s9/paWLOCZpt8DArr/wPHzd47kk41oYdOraQRg\nO7rhlhUy4f/AfEp0GQvTtnTATOSyI5hIfQcAzo+3ax5FQSeolf41LzRIo4dQ\nCQugMF3jL4gybEESlmNWvrUmj0NvYWtpiGgGeqnju56CMHekcuGDX3OCqMw2\nOiyizMXsExuX+N0Q/QQnhhy64y+RBjXoEkpe0uKbBFJ25K7insfVNZmJnYAt\n4FvOMWoQWClvFFCFsYIRyHqbZFm6Hxs0IGOB8wuCKPc1OrIdIrMMpL8vX7GY\nsvKl\r\n=+2T3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"a8de1605b01dfddd7caed2bc3d938e0c5dfc4737","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"rlp":"2.1.0","tmp":"0.0.33","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.1","bip39":"2.5.0","bn.js":"4.11.8","clone":"2.1.2","debug":"3.1.0","lodash":"4.17.11","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.26","seedrandom":"2.4.4","eth-sig-util":"2.1.2","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"2.6.0","ethereumjs-abi":"0.6.5","level-sublevel":"6.6.4","ethereumjs-util":"5.2.0","ethereumjs-block":"2.1.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"2.0.5","source-map-support":"0.5.9","merkle-patricia-tree":"2.3.1","web3-provider-engine":"14.1.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.4.24","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.14.3","browserfs":"1.4.3","coveralls":"^3.0.2","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.0.1","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.6.0_1563389329330_0.6801440098308955","host":"s3://npm-registry-packages"}},"2.6.1-beta.0":{"name":"ganache-core","version":"2.6.1-beta.0","license":"MIT","_id":"ganache-core@2.6.1-beta.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"bae28ce9ca935bdff6d38727059bb8f47395e7bd","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.6.1-beta.0.tgz","fileCount":47,"integrity":"sha512-u0FJ9DpUexgrH0UmsLZ8hpkGtgMyX7qeMkPGIGSEB02yuxN+jNnh9d9P34O9jHgMYqptpCa3rWnNrK8Lkx9D0g==","signatures":[{"sig":"MEUCIQCZIRqwXVz4ymhwbUweAT7QKabfl2M5xW/nW6aygEx8zgIgMNYUiw2zTsHBznSZOodJrlg/owc/PU64uWItvRPxX9Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1725975,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdML46CRA9TVsSAnZWagAAbpgP/An9x5kb119ZXYtCwKIh\nP8wPnp18gQS62KNUQw6X6rYGFGKEX/kH15pf21DkjgwnSX5f/9SNbbvCbxUp\nQ5PRLUKWTXJncyltZHup51O7rpd/5qLhmL1/wDv35UmYyNaMOE0sz+yRIxtw\nnzeVKHWUvNGEsBrBN7uh0iH2nOoHR8WFxf0XjAK614ro2jElUM2cmPB0YfQ9\nOR7cPVSvFjbfkGRe2OYrYd3iGAC1sGtMOg4ditFziJSPlxmX4NvMi7vHWp5k\nESYcohEmQg1f203gJMY3yne2w98CZ6gtgezF/bTWiA+evFbZftgMttzpBItp\nCqsoT+U5QlJArcG7T4iUukBcCjQ9zYs7p7DOGQhPLpM+64JKNvwIzWVpIKik\nf2qVuSy/nhy1Pr30y5obeTETN1X0EfFspNvN05gYJOyATtDESSBTrJjLIcU5\nO1gVrY44El8nx6q2G/mTKIGmf5RIVB+8h2x7r6TXHC0KDdLD7f5znBzJnPam\nzv5vwxb4WmVc593m8+jsCMG4YuXQLLNn3/AtPq75JZJHN3sQt75fGI2X+vM4\nDnhzgZ2phmLMbwbDVogLA22DjsmxiPSph8ey4K7s1H4hcSpjW74Q454acca9\ndjMtxEQBlLe2W9KDQCLHL0SfPq/dfQZycA4LzYLm581S/GUsRy29o9q0tUpF\nIZ8j\r\n=y/+C\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, and `petersburg` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"0946b9c1d0aeb4df34c8afec84718236de15ba01","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.2.0","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"3.0.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.10","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.6.1-beta.0_1563475513587_0.2459802716079118","host":"s3://npm-registry-packages"}},"2.7.0-beta.0":{"name":"ganache-core","version":"2.7.0-beta.0","license":"MIT","_id":"ganache-core@2.7.0-beta.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"a7201efb56431f80b439ba915246de1ff7d64177","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.7.0-beta.0.tgz","fileCount":48,"integrity":"sha512-oyjwGdSfEmLbgB1LSNMalD4UjSEQ9a0eBmFt+DSzn6lL1paRtb6c4qI5gc1sW1N3QcYH1zrwWNzwYKXwnExfYw==","signatures":[{"sig":"MEYCIQD+ElwICgXRT2UI/NFyIhBxEOWbdEqV4UnCzBe/+pTotwIhANPQO5L36J7vFS3s3RfVnfQdgbuG6uM3rt3vmErzmhFN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1731147,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQbW0CRA9TVsSAnZWagAAYW0QAKLlzr7XJPmsLrTUspBd\nfBOC7upWdAIn3X59JCyILqE9vs0cSs06H9VDK16ydQOfFuvdCT5I5XxMcD01\nKvxfYb7rdmBX09Y6KoUWNquRVVArOe2zTQlU2TtS2hhuk6dAW7rIjOhfLlZn\n4FBzkdHSELgixn4XmcwR3S4TSYgtkvG8RkVdaT48YjNdRiL1fE2HzSagMX1J\nJ9eo89KLimiosJMDJmiLfpJGGnOz3a/SZkb1jmgCSaeaKK14mDTUFA6Rtqli\nvWA5zQ7KpVOV8Fpp20MtpFP2WBiOmtKZ2e8HBkuAIVGWY6wtsnt3Ebhqg+de\no7s+k/ZRioOzan8O5r9p0iMqVHQ9YmXu+q4EDBRaoWBWP5XlgJYy7ZeN0Q7Y\nZmTDAqs3qLtXJIY7LbXtpmNtq7Qz34C7T+AnaJIAVqNl6ou+VksTuO/hYQAp\nlvw0eiGSo82W6miXVYCySMAaUZiTNtpiii+Mn9aKnS1tFqLd1IpTk+qywXIh\njaqZF7JwaNbU7NskZkjv8uWOcKHtsvw38AKFbHTQHzoSR2+qmzxt9QT7qOAn\nxIHmp/A3EzxsFSnfejH7HryB5UB3xlF5wlPqOgq6QVdHhpipSfJcFUzXi5jM\nPvD9qv5sxPNPGqy0EDCtYnyJNQKw0thnLAzZA0iLY1am2u539Y/U9uWIl/ru\ngO+4\r\n=SzN1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]()\n[![npm](https://img.shields.io/npm/dm/ganache-core.svg)]()\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, and `petersburg` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"e45a0370b3090d6067f9238ba8e48076c0d1a602","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.2.0","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"3.0.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.10","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.7.0-beta.0_1564587443890_0.694222457127543","host":"s3://npm-registry-packages"}},"2.6.1":{"name":"ganache-core","version":"2.6.1","license":"MIT","_id":"ganache-core@2.6.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"b97156cd53d0492477c1229d57f8a97763d30d46","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.6.1.tgz","fileCount":47,"integrity":"sha512-P3X8yo1GAabYuc8SOnWAFyHL8LhOlNOG6amtItgOEDBTUXMKlkGKP42OxjKovxCAlE7d9CXmYXo1Bu0rffBm9w==","signatures":[{"sig":"MEUCIQDqTkeHQWiXrmAfzgbSFeEhw03orySHTINPLyEhhpM92wIgSzGAUz2g5QoXkVpACl3wF02BXYHCh/KMBPPoj8Patyw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1725523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQbdpCRA9TVsSAnZWagAAr7UP/2euVOUEuDtAnOV0txHu\nqC635mQ2KugKYhTGSOkTDtqSsw7m6M49hoYKa67lpbmB2TIgm0+6HjWei1uk\nz1uCYNq5qr5zY7ezT+lMOND8hD1mApLwqeEuvY/+wAvtRLyaTMmeicEvHlMQ\nkAI9aaIg1hMGDQFW/pUIe/n4eEJ60MsYhkTCUNy93KnKsLb/14sGgrDlKadK\n3bitxfI4iYHdpqA3HaZi8eMm5RJcVvJMKjnp5Dc4XStnWjc40es/izJi7XKK\n9cD5y/dSUj07ImA9Ln9873MLI0wGlZ7nKR0OgjE1kBmtObVhwC0zSpCAJJbR\n3y9gUwYd4Qyq+kyVmtVflxH92YKEU/wGS8hYlui+MBhjoRrhTOsz1LueHf7r\nATY97xXCdm1iDcrcx/qSAxJe+lTzXFBQK96Yr2cKEXzj3pDP53WvMENW8LGy\nmWyHSDzsU0Wy8BzBOjegn9CXsdWtZT2gY9X3aygT55fMOK1UKilc9OMgyZnW\nytOCsA5bWVWyUTZGs5LJkyF42aDZceRYMg/m0mk+LEeV1xIWBMDBmZxyEbRA\nGr2YySRBOi/nrTn3V5DZH6bQpBQWss5seXRz/1ci0gbdZtVe34uvipQiInHZ\nN8NxaTuIGWAp8HXj0H3M7VcrxYmfHpUGxZrrVJX2vjPzYL8nk6qe0VNsNoJD\nLYYJ\r\n=8vov\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=8.9.0"},"gitHead":"78c1729b58c97a4e1e66017e966e53e23839d4c0","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.0.0-beta.35","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.2.0","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"3.0.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.10","temp":"0.8.3","web3":"1.0.0-beta.35","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.0.0-beta.35","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.6.1_1564587880929_0.6866915212273748","host":"s3://npm-registry-packages"}},"2.7.0":{"name":"ganache-core","version":"2.7.0","license":"MIT","_id":"ganache-core@2.7.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"9897c7ad6ebe934e92f88e62fcf3c6cc1f1a807f","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.7.0.tgz","fileCount":48,"integrity":"sha512-oZBNb2pZlD/uMxHDYJp4SBfavwblcGyqNPiZBgilp2n1fO/rnZwEAcpKE+1Uq1sO27YxuKJosm3Jvr9NarOWGA==","signatures":[{"sig":"MEUCIFeejVoOjzkMwfDVNJCrE3A1nnMjoGS1+WTMXTiHRAhlAiEA7XedlUuJu9hOVWn45YWSHGessCLWBRgUpj/GzIiQcvE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1750073,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVDKiCRA9TVsSAnZWagAASGwP/0wHH6qPQZ3mwshhgNe1\nagpgdPiHMCXME8jQhfZ7i7e81AaYa3W5wUnuBE42xayZDN9Sj2OZnzqfMPWB\nKhOe/iTd6Z13Oap/xy2NIjgv7gsjoq8QRjhI/L2tHhPuFtuo2EPGu0AUj8Dt\nmgXPMZbaAFPcGX3gbTMVcrxo1RmEts8rLu9p2x/sI3ByEUa1P/ZmXfL4MNIg\nKGdqvxyFCplqcm9Hkt6pXKnmm7VivA93+8ixfsm6vvMPDAd46Rwp3l+Wy9gD\nQo8OD49d/1bLr5U8hg6O817Ei7l6V1N14uSVukmK8gw5p+ngyb7SckOTm10F\n5Pi3chgAtLpc2i9URngg6uc4fM0fGCRrpYkEGmoHheYdU8vrqczLjck6XxCw\nSfu++97eKXQAk3YgirI3lmX/43FiaZHPslIx5ycGVHw8y6cXKySnLHOCNyQo\n9jD1i9UcjagqKdIqH4PuMpF7ycGff6P0tjRBftM1esog6/sXBN37KDBftemv\nU7Sf/oayyfMCkzwzT7chxwZA6a6cbq3BAMAXKI8iscJsAlCGJtKMkSTDK2S4\nIposfdlq8Itdd9LwpqoXnCG/lFaZEauwUvOvxkiRtaVg1UgREman7pQSK+7C\nCjkAmRihCYboCjl+QM2W2CQi0sMxqvaPXj69ac/T/0FqWLw8X47joH0LaCxG\nSn9p\r\n=KDvO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"d9605d52947f0ca82c35aebcd319472a522068b7","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm](https://img.shields.io/npm/v/ganache-core.svg)]() [![npm](https://img.shields.io/npm/dm/ganache-core.svg)]() [![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core) [![C","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.2","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.1","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.2.0","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"3.0.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.0"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.10","temp":"0.8.3","web3":"1.2.1","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.1","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.7.0_1565799073890_0.0050393644277586525","host":"s3://npm-registry-packages"}},"2.8.0-beta.0":{"name":"ganache-core","version":"2.8.0-beta.0","license":"MIT","_id":"ganache-core@2.8.0-beta.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"8a1de81d3d6708c0a05526ccbbbc6d06323851cd","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.8.0-beta.0.tgz","fileCount":50,"integrity":"sha512-MK8H4G2dGFt4VYV+1xjDwGk/iNAbGYwprWl8FxNGQjIQhW59VGXDY9I8tg+GNk4UBhoiZdjRFGlweNcX+zaBCA==","signatures":[{"sig":"MEQCIBb3E+B7VYmtnN6oH98YTVeHSKnlhNUdVbDl/HCaYakuAiBQ3OxxuQh5Nx6+wJUHdbYEWqBofB4pWy1C/bTjUgX4zg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1753430,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZVx6CRA9TVsSAnZWagAA8JoQAKRQ1BhXFP7OS02eKu+z\nS7vvKuCAEg+UGhVhds0bt0km/KD9Ya62qGW6oA8KGD3sFyjXQx5RCRoSzXCj\nrf+cMdPRA+ThH9uCwikz/P6Fi9dymDmemXdUSS7qumaTee786GTxSQIfVBsl\n5Ib2zMlCI1OiA50USiyNkOf+F7R2ah8b7z8RU0oOHwUX/maFqYLgaOrRXK8h\nV8LaMrMR+Xn8alUFk7Yzt3YjckSWpF9auxY0nYi8S5OE3pHFSPKHqTGlznHi\n8A67f3pMXneQubt1/63oAUQedoyCRt1kKx8IJrtr5VRTzSvb3V3Q7u4NSMLE\nkXZ9TYj1vtgV1uH1rA1y4t36kuMTXIWvKWSFs/Vn6aoWu1TSgGZhkWdPQxjj\nqB5fKVoHvPVi+DSqcpFvmFW2trYO3txSuWP4JzLh7PiKtzRavKT7rRyBthCV\n0zurc5+oylzmd7DCi5u59thEckt4Syl08lIfbsgKnLdVadnizTR2m6n5Ntn5\nJ4ZIUOz9MvPeI5tRElykP9gyThG1OaCSPaPckTGAnRuofURHa80j9L7DNQvy\nifqr9JgZ7A/G++Mxg3eznmgRrP6Ws7amTkeMHtCzBMPvOKAu0gEc8o0uAZUd\n4U7pLZvmSJIw1eS/IvmBKmZhuidduu23bjqrjjkaQ9cgODdYqiq47Uf+2x01\n6mX/\r\n=fNXl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, and `petersburg` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"189ff911c1a60f7ff3ed32b757db66d59d00f477","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.2","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.1","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"3.0.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.10","temp":"0.8.3","web3":"1.2.1","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.1","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.8.0-beta.0_1566923897675_0.5454506645757724","host":"s3://npm-registry-packages"}},"2.8.0":{"name":"ganache-core","version":"2.8.0","license":"MIT","_id":"ganache-core@2.8.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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"eeadc7f7fc3a0c20d99f8f62021fb80b5a05490c","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.8.0.tgz","fileCount":50,"integrity":"sha512-hfXqZGJx700jJqwDHNXrU2BnPYuETn1ekm36oRHuXY3oOuJLFs5C+cFdUFaBlgUxcau1dOgZUUwKqTAy0gTA9Q==","signatures":[{"sig":"MEUCIQDs39aswMGZ0YhyirOQ5/bRZTBakSSIozJpLaPoeK/IKAIgS5ryUuVO3kvYL4gRXYzWfedZS6gugX6jGV1gybNDhqk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1753024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddtYaCRA9TVsSAnZWagAABeQQAJVDZ7gFe02hkux8Pj0x\n716lF5l86vvouLMFHcYrG+oweltrs6/HbR9+NpM0U+YZ7rCdTn5Rv+EmeIR9\nPyZXoRI09fmTKK14ZU0CMesTe/lr63wYkNe1v8PZuJKW4kXqHuMwS3Y5UblO\njRBW/KqmRXUEdpJZ8qoQdcYQniyLzVEIx0pv1ODRRF/MWd4ns0FzfXVeqrDl\nl39C0qDCl6KOwxkxkY6KBfIHt6r0gPMJEIvV1O42J2qbUnevSpSnGPF83cxo\nCE6QG1c41k5byAbvWMwIpmqaQ2OTqGKhD5oU1bHJsW3nCWRtN9DEwWMLgVSx\n4w6yeL3KmQbEHtl49S5cGXwDHEvtOgaB7tFB0M/6rnUpU8qC0jPKlTiig/up\nCRUG6VHs1rObuJZkjK1OUiEBGdMIuEMBjQ2Vp90ogRpC8S68izjZLfc0A9ea\nhmg+DEIOJwXqJ5yNeqQJA8gnQ6yy2YyFMMYWllLxMZNoxU52fJv8T17AmHWh\n7hquptGAKL/cXGfFdfs/FoOL8vguUOngoLTBOU5BQy9om76Qz16QLXeWYHFd\nuDX51oPyK/Z/CUKXZlZCHNIfw6pbakicw0qiMPqTb90Or91kCOgYKBsa2U5K\nG8+e+IAkE/YIEK/bDV+GxHgkse/Hsmp4A114A18y7eqq25Xdd2IX407Z4RXA\n4eJL\r\n=brTB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"9b5a54b8e47a8ef1a94e7f102520cb45f22c617f","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.2","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.1","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"3.0.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.10","temp":"0.8.3","web3":"1.2.1","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.1","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.8.0_1568069145091_0.5430489585509986","host":"s3://npm-registry-packages"}},"2.9.0-istanbul.0":{"name":"ganache-core","version":"2.9.0-istanbul.0","license":"MIT","_id":"ganache-core@2.9.0-istanbul.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":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"bc336c770775a2b9fb06f5cae827088ecc194283","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.9.0-istanbul.0.tgz","fileCount":50,"integrity":"sha512-wqNWyxrfZe4QPxzaR/n4hGxIfa1iZAkymPg17wET0iWZ9uurMywGgpG4ZvxjVU9q7WCjIobOSzE1m9OT0dIYcQ==","signatures":[{"sig":"MEYCIQCvhbNg4NvMdKcD47/irgpPBIWUQp9SQkil3p4qT64a0gIhAMsqCpR+ol7YJa0cQ+cbRomG2N0eHW+UbMLtnuCRluuq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1757936,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhWYPCRA9TVsSAnZWagAAwTEP/i9Mbg3IVInzneVq/RLc\nB899VS49YR0hMxLHnqPgsi+ezUh9iAEH+beychd61f8pfnQIwchgUgPCd76F\n1dJvX4GDQDa0ZKEaSZkzxMjLpr2rMs24lmyvEWdOE73pRMIiA8QReS+GZfKg\n1V6ZnL+EXmGHK9SaqQet4RWt8zGb3HBRFnNJCzUroA6dz3vCzrydq96z46GY\nmCWGumEc+JdM8KPMWIz/knwEbLJprtt7f8YJVJv28VElD+2HkTIyOc2OKuhM\nbdPNOFAohM0zMEEz25DPg/SMa+6cVutYERCOojB2LnKbpK/MmSWG+XlFU6B7\n/eot67pRTKyBEe3Jzz2hMGn/UGhn/mQT2qDNK8Pn8T+RsghyToi4Mj15q8a+\ntsgz1q/7qhepUbTxtf8xYtazX5wtXbaM84ELtyQpL28f9kByT6z0ftL7+u4o\n3wzPMJQFdDvjFlk8Ga8zFmkRgu6xT1pXS14bWNpI3lOknMKrh2PhCUNGxDy4\nuMbGMIzjrrXubBBY1E1UkwwOQ9r7+X/aCyvWbcjePtyRvs1xjMg7/3An6WI4\nkR90q/IYdcW53PhJBXmwjfGANOqfUVtVfaoPwY1tIlGRNdmcB/78vwuDJo8D\nGb803rCNsgyB5dlrIOjR9WEU9r8Y+KHwo+JyKW09ALWY2RUXwOTirQDGFaSu\nwHOj\r\n=mcSk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg` (default), and `istanbul` (beta).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"6142ee6e7d396655375a96035e836c5818b3534a","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"This version of ganache-core is outdated. Upgrade to latest stable version via ","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.9.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.2","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.1","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"4.1.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.10","temp":"0.8.3","web3":"1.2.1","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.1","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.9.0-istanbul.0_1569023503220_0.5497555616002405","host":"s3://npm-registry-packages"}},"2.9.1-beta.0":{"name":"ganache-core","version":"2.9.1-beta.0","license":"MIT","_id":"ganache-core@2.9.1-beta.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":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"2797bcbff9b0ff6fdf8122eed296d88c4539e45f","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.9.1-beta.0.tgz","fileCount":50,"integrity":"sha512-6quGQO8CAmMNjJx2wAxMocQAlJyyBcpdEFEPC81PjZhp5ywhfLz+j8R5x0DqdivbYEiBAmM+tVFWyKBJV+xKXA==","signatures":[{"sig":"MEUCIQDXkoSVsPBYd584MkclxsGn7kzzdxNQSu23U47FkBwAEQIgRrgVyhbR1rO8thJRAMPVjr89e+HG4XB68SZeYynfgY4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1770972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnW2HCRA9TVsSAnZWagAA/qIP+gJAqV6SF+/GxYbw/RRa\nBWUyEPeZccqoYDmlyF0Sne4ftHBZzFsARMyOL5kgRiKc9UpwOellXHFTaRzt\nONPX3/2l4XO8LfoVz5fftn1qRdnLfoykfi1g9ywyPzw1DIVBZmIBCbc45yvP\nCFtkwQtUphMuzrsNWGhy3O+K3s4Q7ggfOdnTLdxRM37vxsVmxSjuSYLAjt+7\nSzgrx3zINT6n3RfFcx+eLePnEqWVv+DDnIUWUHCjQcUZzShA46o6VGPD2tiG\ngcUH2WgTY3NTFDfcdI6b4zaHTK8W01+AzzHLge+rzTp0CenYma5R5ozbiGs6\nxl9aR8Ce2dNfA34zwOa3pQNOHbJobJ/hJSu4J7eiZ3PgCOYWhlssmfH5HaTb\nL/viXg/hqI2TY4ahl59tPWLPvVzWJbo6j9e7wN9C2fhxSPuQFZhIGSvpONkx\nEEhXB8cnL1Pw144NssAT2zcMzkUiLwaOGg4H4ypsfKQZ9ahUBkrw8EOWoOPk\nWbxAtjLQXe7h0PkW8e0TQmqlQmNeMQZNWM/ThmLMwQlFa8uFN0QT/TOw8Rjp\nRHQBaO+fSt8RTjKWspzCKFgIoUZJ5Vq4ZAChyWMMrYVmaeHe3Wkb07UnckK9\nMjyGLs12+2uVeTzbMWatmb7gt1LVliFQf7oglnQmRJKbAnEpCUXLD2HezuMn\nr4s+\r\n=SWVF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg` (default), and `istanbul` (beta).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"8836520da717b80ccfb8db2186700094288c732f","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.11.3","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.11.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.1","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"4.1.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.10","temp":"0.8.3","web3":"1.2.1","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.1","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.9.1-beta.0_1570598278544_0.05075746122135971","host":"s3://npm-registry-packages"}},"2.9.1":{"name":"ganache-core","version":"2.9.1","license":"MIT","_id":"ganache-core@2.9.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":"nicholas.paterno@trufflesuite.com"},{"name":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"a0ac59c27616688ba17e1a4e0150f6b3cba0a469","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.9.1.tgz","fileCount":52,"integrity":"sha512-AE6Z9mZEy8Z9NBjHBEAzTGX6OMhRypp03LRKBJUqV4dSVDD6L7iqUbZvjILBwSqRyZV4v+ASxI9Hm4MBWp2uwA==","signatures":[{"sig":"MEQCIE6UtJ22rm28jabvhibiI9XbjmNVoGDlAly1JHVZmI96AiBHrZbekcySKIY01ZM81CZKbFEYYirjyt6rFvw1pIDfsg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1799473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeE3t1CRA9TVsSAnZWagAAa18P/jDjz+fuGWFHCq37u7A2\nPaEN2wYHFI6vlsWWqIHaLhwisxiIC5i0enk+kLAiQBcGSQ8mu45G+ggmkx/T\nc/v5e8DAroGPbPFr5Ox1vECwZXz/BJyqj/er54CX5OthbywwPlbwiXS39QPu\n8WlcAETbNbi39iE1KkCjyrJ1LhJdA/RA8JmyLvbyhD6DhtIrofHlUCp5wl4q\n8Ekvnvi7VnuGycoTK1vmixI7zyYfjw83JXErqa7Oa7VcjIL5EgNt9hrqREPw\n6Vys6SvovKbJU1/bFeAj6WKEcIuLSLs4XpABQRiH/yb1INc/bHpHYwawqe68\ntGqzh23YVhP9GBk4e+y7czHaPZRyIE0GaR7pn6TRPZ+Kf5ldcA82BUPRv09x\nSjm8D+kzaAcX5Zl0SW4wW16pLKyOXq5VVVsqpM9E5j3dYGqFHIdJ1C+mKiPd\nNGm66GUVdqCZbqPOCbdXk3aAyqBE2cdV+hFFI/I0MxwFpEjKgRjiTGC/Lbs1\nYTKkGfRLiN+YvuUXOnZArhHYkShD3V1s9whpsQ0uIasT7xRHWtVXc7tPeFew\nxqDNgO6joRK14JhAQwDH2KU5IgPkJZaY7sg7bpI+O8lzqWxIrCWBLYmkXkTJ\njASlWw+ZRhfA2GfxS1qkqHRpT4+/9zZeWVJrmUwK5sjUX7UqTx2yDCfbsjS1\ntbRe\r\n=+/8x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"a53c02d0ed581267aafcdec28fe30f17d480e29c","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.11.3","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.11.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.1","ethereumjs-vm":"4.1.1","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.1","ethereumjs-common":"1.4.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.13","temp":"0.8.3","web3":"1.2.4","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.9.1_1578335093017_0.9718392412362409","host":"s3://npm-registry-packages"}},"2.9.2-beta.0":{"name":"ganache-core","version":"2.9.2-beta.0","license":"MIT","_id":"ganache-core@2.9.2-beta.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":"nicholas.paterno@trufflesuite.com"},{"name":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"8f0032e4e950426cc0e77c73e91b838eee430d19","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.9.2-beta.0.tgz","fileCount":50,"integrity":"sha512-Ew+IT86niPIOEKpB+ynZ10Bi6sFSOPhwSzMk1pYwfl1cTshgK1NoI4BLdrprvh3Uy7ucRBjqLLlG7uq0KghGCQ==","signatures":[{"sig":"MEQCIG2iyDETnxr3qLTHAmvOJP2dFyTlWZsHgdIfvG0h4bMYAiBP3aKcWUSEqPGgUs06wlBEuatj91/KhNEvwrSBDkLUoA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1768190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHkL2CRA9TVsSAnZWagAAl9gQAJvJp3N0jvlQr/w4+Mmf\neroJdFMoRG3pp1aWFs3vz1Nxex0msLHVNm6E/tnF1B1Tdu5Rlp4g8yDT86tV\nbb3zlj8eAA8UERZxAkvlkbP5Pla4hRp85j/sVHNUXSmM3jftQhMIDCwo1p6I\ng7L4MjXWt/NE3yMzocj4kPsQjISuSg69wUBok5g548+htmT6yVUpt4HiXK3v\nQ/kvTfqRKFHmZFMW8VAWYgSr6bwxNNbVLIVZybdSjAYczzUuaMly8ktYf4to\nfykE0mSfdu07jkGj9yWj3jlxkmPjLbTgiamOY944QduI5X6718JbfgybXo9m\nD4BabHeFpgYOP77RXOFe9pyVb3h3czGTDYZJxRzdwOoQEvoDOZBuYTvfq0nl\nxUDU/Wm5/+cAdEzWd0WT1ETCYoG+fWsHwG5ZeIe8UdGKMkCGDFmkeoI0JPXF\nbA0Kl5b4BjbXzs4yIFeM4clj9aljG4gQRcD5V2xCI/az1FA7gS7+v0MGFMbA\nn54KoWE0Z4kb9hNQe96I3TGOudD11FzZr5xSHG/HEb8y4W2Qt7B0rsb2Pkzq\nb2JVT7kcjB02qd2x5mG5UZF+ILjRr8AgqMqdx95mmptbspTcufb+8STfuLHr\n3iUbJuyu/m+YpMcYU9KlFRoYt8hvLV3qy8cdI9nWr9aasVMhDHwDudPggesI\n47Ol\r\n=m0fK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg` (default), and `istanbul` (beta).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex` Sets the block gas limit. Must be specified as a `hex` string. Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"93fbdcda4cf6bc70b6aa390a473ebd7df68e20cf","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"This version is not stable. Upgrade to v2.9.2-beta.1 or higher.","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.1","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"1.3.7","ethereumjs-vm":"4.1.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.10","temp":"0.8.3","web3":"1.2.1","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.1","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.9.2-beta.0_1579041525773_0.8741714618468934","host":"s3://npm-registry-packages"}},"2.9.2-beta.1":{"name":"ganache-core","version":"2.9.2-beta.1","license":"MIT","_id":"ganache-core@2.9.2-beta.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":"nicholas.paterno@trufflesuite.com"},{"name":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"9c8cfd50948457ff049d4df2acecbe343664a7a4","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.9.2-beta.1.tgz","fileCount":52,"integrity":"sha512-b+K4vX1ZtZ3p+xeKQQpp+jABBADTfoEchUoKbcl8bd96FqNd0C4ylPLtITD7wG5Yc9uS1s8k9s2zCgLn9YIBTw==","signatures":[{"sig":"MEUCIC2nxWEueSqG5RwR3jtfdukMT47gZLt0upeLbiDLMOwzAiEAvvlUq2rNdYtKGaFzO6MSXdbGpktZC0sluKCY1fJmgRE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1809628,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHk6/CRA9TVsSAnZWagAAZacP/0NvABW0KEzCxjxohbvB\nbg2k899YWZC5YP0KotKFhc1hGLXinZrxkjspgc5Gn5LSg76qCDkjNHchWJYo\njFNdffzvsL9S00w0EVcnFUuBy9cn7ZYTud/wpdiA1xB0cD0Q92q4pMZtVQMK\nOELFb6yzRQlGlVTuHTdSKP/O3fbcOfk7Q76Hiwl1Sf+SVvLhaf5At+NhuIJ2\nrbtkWxbHSFGwXVl0UvEJsEzNuCxysIFyliJz4kzpEcnivbvteSJ0uXN+AV3u\nnoUCywTxT5p0KIEsO7I+1Lj92/w1w6R7CNFvJ8/UT8tOjbxPRDr34yGg5qcB\nYIuJyLZsyu4IShzkg70SOdgMtumNWqiu45OEMxR+fp3hEajCbhRuq1DNjwSs\nVZ3MOyrFNKs8rWhwjOyOO9n+da9/eAcLWlRB2gXIevczaL8iRTpf33p0t181\nq7kMYnCUTZ7UvMpNf2OXhXoBX706EPetHJtCND9kvjV/hSHl+HMBPhtrePI7\nHoiTjt8j6q2jqnpkTlIKF8ndWxNiP0ZcBI/ghW9JkjD+RHhp0E8bkcM32+PS\nUQCnhWjVn7bBNU0mg6mdEY08At2Wqc3CItNF488pqdkPVuObIS4OjP0zUYiY\nZwcl/sKRh8lvv2YkMSUIemHdKd+BczfHdxXCM18k5Rkhhkas72BQyCMzQKTw\nCpz3\r\n=50/X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg` (default), and `istanbul` (beta).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"e4ce3e106d793b2e7b71e8db30f3cfb8436e26a6","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.13.4","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.14.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.1","ethereumjs-vm":"4.1.1","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.1","ethereumjs-common":"1.4.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.13","temp":"0.8.3","web3":"1.2.4","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.9.2-beta.1_1579044542536_0.007560740598624216","host":"s3://npm-registry-packages"}},"2.9.2":{"name":"ganache-core","version":"2.9.2","license":"MIT","_id":"ganache-core@2.9.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":"nicholas.paterno@trufflesuite.com"},{"name":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"1c7516f785669f35edac9ffaa40c3ece2749bf50","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.9.2.tgz","fileCount":52,"integrity":"sha512-+BHzLDpickuq/f147ryoHClzSG7P9DfiOfwntEHbXFbfsLvmGCbE3TiKwwWkcVoiBdkN8ybyElWE0QoYe3/LOA==","signatures":[{"sig":"MEQCIGv+7+O0hM8P4RTaJo320ugoeTGKIFtjum+6WY+3cPeWAiAqmMxsyQgITpgZcRZZWoxoMIotAaXOXP+LQhV5L+ffFw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1804387,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIJoNCRA9TVsSAnZWagAAmicP/jhxTaiU+29eOGVMc2UA\nUAloLKDRh4ixMA8nYt2r3IAjVGSvEDdSgLvVyUGlbXCpFf/mJqHPG19BnsaH\ngV1yBcWmIbKy+Exqi9nKq7QG50clFD9F/S0p2x3jA2/9cs/a9dJrX4yvWx9C\ns0XHh6+QUszBRa5PD4oOC+GYczNq+QQ9sJ0I/qd+e9q+3POF3e3MBjovRQCw\nwOUw5JDaQRRMJQEvtbB7ZdIFpGlUtBhLe0cVCHWgmUF+vjqtXNEGT4cSebC5\nne110FNYIXYNTq6mJUSdJkoyBNz6h6l7+5ZJXmkkfe4u0R2ofoOS1lrqOja7\nOGKx7YPHqBLAeoM3Ap+BJa+/kZ121wV9g8ft/qewEuTwb6QC3xaXDV3iORqQ\nDmfkR0w6uK+2m4toEFc7+gCKazp2XizUPgjQQMSg0SB64rIRoh53uoQIbf49\nxMLdg2gVdHAmWILuhH/bpjVDiNPwcN2n8u7MpNKx1HJThZMslr+L2sT1thnB\nUV7StYjc7xvAPH+vTVM/Z/NHhWu5IE1pCThM6dkZ0gANu9p5rHdWdlyVkCXR\nKPSObWBpRtFYI0rLsjTqO7MbCn40k99y5+ugiQ9iBbKg601y2PsTyzFT11G9\n2uPQoWRX6XYICFh5os4oowz/4tJ90TMZ9J4E8aYxkUtBIVJJ0jaO8ol03yDw\nCP5k\r\n=t7ol\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"9be4eaba65aad590a7f4a97ae94075eca6cfea4f","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.13.4","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.14.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.1","ethereumjs-vm":"4.1.1","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.1","ethereumjs-common":"1.4.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^14.1.1","pify":"4.0.0","solc":"0.5.13","temp":"0.8.3","web3":"1.2.4","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.17.1","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"1.3.0","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.9.2_1579194893147_0.4883764341512431","host":"s3://npm-registry-packages"}},"2.9.3-beta.0":{"name":"ganache-core","version":"2.9.3-beta.0","license":"MIT","_id":"ganache-core@2.9.3-beta.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":"nicholas.paterno@trufflesuite.com"},{"name":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"262651e4ed80e0700a5b2e930a915b0ecd7a7cdf","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.9.3-beta.0.tgz","fileCount":52,"integrity":"sha512-W1MylQ9JKtb+vUrw8oqaGPw9mICcpndo0SZxtKakGA+dGKlNIlzj1uMY6BjbYPEMOivKfYb5d1VUj6GX1sSDnw==","signatures":[{"sig":"MEUCIQDflMuCbJ4cCXOUrhBxKrIxPtUc6Jn4fzkUrZw/xKYnMgIgI6ijP5FhDVtYNyj4xchZ6EqZfd527Db8WDePebG012s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1852141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIeo4CRA9TVsSAnZWagAAZqwP/3apISrrtCHWMOpq0D92\nGmGylOJMRcA47rX0dye1xZYQ/6I5nPFw4ObJb4Km3rz87V5D6v8vkuu3QeDt\nTeGBbu3EqKo2rOstOARc9N6sAm48IFhHcZ2NLk7oCZqChQJl0ihYeTxER9Gq\nyBK7sHXhwRd3M8MS1e38Cb6/uke4KvR10hqUZiRxdgJbnQaBeLCcPx5WtcCh\nKucN9+O21DALzwcbYQ/xhNXqMQNpeXPGwa0/3fw25przl4XeJQWChzjEuGq2\nhMQUVFHjSfShoZsV93i8Sx/N3wgn1X2eVqTTesUXqVVubGBAv0uSsnwtOjge\na4W34sSVtjBdpqPlfoA/uY7Rd5nYxK4Y7+uQ26WwEfcGaVSiSOIDQdvrhWNT\nvvYrUhbEm9T/NR/T2rJ6wwo7eLsSYOk/tHuH5Ds5HuO2y//z7KRlheZjPvOC\nPDMggga5YzRUkX4bx2HwReXTMHoTunt91avPLfJ8Gt4a8Hm0APT7dTCAJcj0\nVnl2CEZNvttMYS57YnEQ1pKRy+94XQslqs4C6WXh5kUBoh1/pkvZZTXHci1Q\n7ABxzrRbPh+XHaSpD5bBS01L0qaSCSiO3mf58LRXOOuVW22B1L9hmJUgMeox\nO5/TzndOvBD/oXileE6W35u/C5pQ5G3xSYnGZHPc+4JEhFBJ78zAiDSB/55F\n1Kbq\r\n=3JNc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, and `istanbul` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined. Takes one optional parameter, which is the timestamp a block should setup as the mining time. Mines a block independent of whether or not mining is started or stopped.\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"e2c10cb65917de31f86581aca17de2f8a31c9655","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.13.4","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.14.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.1","ethereumjs-vm":"4.1.1","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.1","ethereumjs-common":"1.4.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.0","solc":"0.5.13","temp":"0.8.3","web3":"1.2.4","husky":"^1.1.3","mocha":"5.2.0","eslint":"5.7.0","ethers":"4.0.26","semver":"5.6.0","memdown":"^1.3.1","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.18.2","browserfs":"1.4.3","coveralls":"^3.0.4","cross-env":"5.2.0","js-scrypt":"0.2.0","portfinder":"^1.0.18","@types/web3":"^1.0.19","lint-staged":"^8.0.4","webpack-cli":"3.1.0","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"7.0.1","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.14.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"12.0.0","eslint-plugin-standard":"4.0.0","webpack-bundle-size-analyzer":"2.7.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.9.3-beta.0_1579280952084_0.07237463031490043","host":"s3://npm-registry-packages"}},"2.10.0":{"name":"ganache-core","version":"2.10.0","license":"MIT","_id":"ganache-core@2.10.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":"nicholas.paterno@trufflesuite.com"},{"name":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"e5d4cfd5527e1e227c4a6b783d3f99b09a12455d","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.10.0.tgz","fileCount":51,"integrity":"sha512-jsRork2u76r0R9DJ/2CgF9uAve4+XGR4j9nEqRbncQwksslJXJAwMOtFyrNF1EzvbkK6YaDl1sc7h2a6frnzxA==","signatures":[{"sig":"MEQCIBky0FnNpGHrct3ymnw5CGJWcIH2eO/kk+lnCyz+oRZfAiAEq75jTYcHGtSAcBiG5A3qjRkOMtGZqaOVZX9YJcX9kA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1910912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeMfRcCRA9TVsSAnZWagAAHG0P/i4AEudfAfM1HPQHBFFm\n6vsFFXzHNyNwlkivF1Ei0dYHJWZPBvBBjaLLDKWS3CHrBCRo0yDRJd74F6od\ndg+7onX8bmJq/OdLY4PGZG4zsIAgA7pPfb1w55yM6Ftuo6buudkHNlD00O6L\nMOWb/EXBAmLP/LpfuAZvXwrruRZFiKlaTe4h+JQCsJYV/vQy5PAWIUsFlQdj\n1PmPDpqmm34jMHwAFj+nzGeDHh4WC/rwm8FlWBVlLU8AKdcf9W/3it2dhGRO\nUbtsl1UFnoFWR4p87y0pWeJWIpgqjHWqmxeFuybyTq2OocHjmYyMVUZO5JMW\nSGFoC6vQV2DbtLX4MCWDI38rfpVm0qL8xjROi4ECy5+MzU0UnnTQmrNe8xOg\naUJ2nrEUWWJ8GSu3yFliiwzc0GaK/1T1UNHprs4cskUk7VSlhrEkNOlRsQA/\nM8361bPfj9p2P9FWVo6GC1gJWmqTTOwkMd+TTOBreSV/mCvLgZKxbE8T3i6A\nvEVLlbptaRJPsqgzmpcoo0juFiRF87VVA1dTRiSbdcctmfl20x0XCsTtaAtw\nhsneGWBzDQesLJTN8Jf4VdMWWKRjl5P1JK3FfRXF2kl1lrH9atAXfu6ADGHp\ngZQBLlJZXK3G/z+YUKHEbX6wOw2xpzv8bupoEfEPmQ2a0mjkOfTJRq9PLNkx\nQBDI\r\n=vRzk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"a63522bb2cc5cc0ef7e26bd2c73a3e412a10dd2c","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"nicholasjpaterno","email":"nicholas.paterno@trufflesuite.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.13.7","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.14.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.10.0_1580332123499_0.35620996878024","host":"s3://npm-registry-packages"}},"2.10.1":{"name":"ganache-core","version":"2.10.1","license":"MIT","_id":"ganache-core@2.10.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":"nicholas.paterno@trufflesuite.com"},{"name":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"89af8251b3a89593bfca46dfb837c230ca05e98f","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.10.1.tgz","fileCount":50,"integrity":"sha512-C53TKRBWfMEeGAkH5idoCbBcNgKPJ+v1dFDVPKeg1D4ZA6N/PAo5HDVLS4UuZOthPqz9s+uEX6GdluOcXVvm4w==","signatures":[{"sig":"MEQCIDc17nRtQHwuRYeDlR4x73t0i7tDiZ7fBqBTOhaO2vm2AiAmWLONEQjgcevru5F8t8/RRpAPQvS6rRsJ/5jOY4frrw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1887018,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeMj6nCRA9TVsSAnZWagAATcwP/3HwtDhae0eoyANN1Iam\nsygWmKabGV6w8AKbL02DBJriRnJIR2EtsHS4mofz8mzHHhT8fK2JwAHtuQz9\nxrrafB9Edn3qL/CogJnyvTsvEfl8SrMmAXadVA5xvmmgwzQ98kcUyyfcSzuD\nwQrPDB/Ky9nT4fV5oeKnmqBddXCiEei9nNUe27SlMcLXG7TBnzxZm4c2FN64\ndsQBy4XzoayHmVSx7JoW6OtN+5vbl5V/7Hsi8AYjWRfbhwi+hg9HWByEG4sI\n5y9hEicNn9DukM5V3arTcQCtuOVl0fpFyHqLCHlH8sLAknjw/xrYhZEEreUy\nvxxleL/BQFFvTizZ4702H6ftO2UI0RVcXvMbK3W5FKgwakc0IwpDRqMz6hoU\nFMWq2m9z2hnjY4BSiiY/z5LUDqavyYqZ9/aygpIMfpIpFHdWyCd+wPGd57JF\n61mqrxlA6o++q4aVD85ZIOuPH7nT8vTlbACnWlGDmLUUfPYCzXwKUZIr8qqF\nyPpSJTM3Jm0hrXAETbx86JhvNrS/pF46/7B9OnCgFxkml6MDI3FT4A2XBrHW\n/iJAw9nQxpwKZTFTByDWBkJdTBysnGJIIk7U5BlJ/yh5EnTiKmilbErhZkk0\njp7QLxgjmZHXqpw8lgYDwZNbR9MNKqsAj73yweJQXvVVhOnpeJE+o50V2dF4\nGS05\r\n=vG/O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"9d50099b08e630650e11fe7ccfcf66cf5d9789bf","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"nicholasjpaterno","email":"nicholas.paterno@trufflesuite.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.13.7","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.14.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.10.1_1580351142964_0.24568116891945402","host":"s3://npm-registry-packages"}},"2.10.2-websocket-close.0":{"name":"ganache-core","version":"2.10.2-websocket-close.0","license":"MIT","_id":"ganache-core@2.10.2-websocket-close.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":"nicholas.paterno@trufflesuite.com"},{"name":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"c2657629de08c518e13778d33b968d2372cdec0b","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.10.2-websocket-close.0.tgz","fileCount":50,"integrity":"sha512-T0iMtJ4W7WdMzWbNA3UtNLCJlNmApOJc8Q/N3LKO1vIx8u4rxRqmB4ak/VuQZwA0L1fm/7vqzlm6QMVtnALBLg==","signatures":[{"sig":"MEYCIQCtJC7z+PF2MIbqIpxof6xlKcI1Vm/o5ztEqtxyJu+qtwIhAOPxV+i1CsRbqIq/xMEwY2X+lW+NIQMaruZGMca60ryc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1894103,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeMzfcCRA9TVsSAnZWagAANFYP/RkeCqt8aCs2N7QTGWh8\nVWmQGKtdSt0O2h8+8MS467WRG2Hy85akeCnFj45qvBQy62E8ICSuLuRRPkEv\np8vpQ/U+OdD7epdEQ0/jeUEYaQ+BA3nVodrOfz0mNgk6T5qJq37n8rzvXnf8\noNsY5hjUEX4ebBXe0ZnahKHss34LAnQg8/BKyVWSqThLSso+SxTvNOIhvBx/\n6rKIivXm0HSfNfK6+sZbEqnXxsg2GmckCntVnNxdmv6wptZjFBatt4Y6EcCC\nzPycBHFV3yUipCVHLfBU1sPhBPrse0ErO1Np5/+fNPxr3Whk73ePbg04csOr\nXuoQhekqWLFuCaiMyWTKqnrE8sjhRI1We9tBQESzJWS+WJ/vEGmwW9qyqx7y\n/z3ArzzFDDCkyoIKLJyCOUQ/S0UvulnjVBNCHg3bJdi+PA9udD0H9LYWFgLT\noK+IoT91RpbrzfhaB8DhJfAlKTMYJCBsB1n8cMc1AHjDNVdayb3VGo+R75Kw\n4W0rE5jaJOeDGqxZfi+Nux8eCdkvHsrlravH1a2DqMEtWWxKFBzvbEMJAORx\nwmasIpLgd4P1EFy3KsN5oV4gydFEw6sdapCIspQowhSQCL14m3B/WCnxTIxa\nbUF2wXtWMHUcdeTb8+eoOGbA3CKJ915K0Tqvp8ZR2FZwHngqMythWGVWxHa0\n+g0r\r\n=OS8H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s. Each object should have a `balance` key with a hexadecimal value. The key `secretKey` can also be specified, which represents the account's private key. If no `secretKey`, the address is auto-generated with the given balance. If specified, the key is used to determine the account's address.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"bfcc90636a7fa093cd9702dcf37f734d3c7dcc24","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"update to ganache-core@latest","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.8.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.1.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.10.2-websocket-close.0_1580414940029_0.371010803967591","host":"s3://npm-registry-packages"}},"2.10.2":{"name":"ganache-core","version":"2.10.2","license":"MIT","_id":"ganache-core@2.10.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":"nicholas.paterno@trufflesuite.com"},{"name":"nickghita","email":"nickg@ethereum.org"},{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"17c171c6c0195b6734a0dd741a9d2afd4f74e292","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.10.2.tgz","fileCount":50,"integrity":"sha512-4XEO0VsqQ1+OW7Za5fQs9/Kk7o8M0T1sRfFSF8h9NeJ2ABaqMO5waqxf567ZMcSkRKaTjUucBSz83xNfZv1HDg==","signatures":[{"sig":"MEQCIBQnNeW4jBWYhM0Xd9cIJg/+25hWc8+hOL7uEPvelBHRAiBLWDr/8rMV8NVlvB2BgdTwSODf1VAWJHL6y9mKTYu/tQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1892853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRdlLCRA9TVsSAnZWagAA85EP/3VcDyZRNIcS6fAKv7eK\nyJsHDz8EYzpzrX+9t7GSlo0PmC+3NL0huNtLIll1NvePBcHSZknEsZQjsxm+\n14g6c/DAX74zY5sUtZRO4mRdgPaUT1IBjuuvQla40yVKKwnCddg+aMSDEa7p\n89g8ijf7grYxT9qAWhJUQUVQiTv2o53qpKTo4OJUVsmmamUOSF64CYkZ3Q/w\n5aRvblNxRt1IHuae70rsuzKRYPVRqk5FQiAMR3W6lp87gTfVrkZ0PVhaJJVI\nMpuFIjKvTNoZviwxvn9Y2ZpycQBX0zrMxhWx4PQIzRol9qMS02Z5q8d1WIMV\n/18s0tfI9DM/gZY66gYQf2fnSOVXKVvOfIOp55Vgj6IACiQyDtiVRC7veuy5\nwgc9RVIceH7Jej2turWcJxKvBpWvwhF/kx/pDEEKBJ5d3C186j590egzuV0l\nTDQD9gq5Amg+pR9XAKIUckNno4LIGIQs/0DHc2WAoSWi4955hcWXjdj9PxCp\ntlQquhxaEfHPx3rvmh/zvM7xeDOR07o8YpOgdzOfL7+rZvgxAvtosL2d951k\nGBMjLh6dKQSpJ87r23cw0omymK0xCiEc6pTqrc5iVb7C+OteO8555sBD3puT\n2fNoVeqkdg8jNFWeAHQ51y8JzF519gs9YJBxMuzUlExoJq7pFNAy+DOA/6tL\nXKo/\r\n=67Bi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"d1cb5318cb3c694743f86f29d741290aec425336","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"nicholasjpaterno","email":"nicholas.paterno@trufflesuite.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.11.3","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.16.3","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.10.2_1581635915109_0.9928504105682128","host":"s3://npm-registry-packages"}},"2.11.0-tezos.0":{"name":"ganache-core","version":"2.11.0-tezos.0","license":"MIT","_id":"ganache-core@2.11.0-tezos.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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"f1d3a73ac28292e5e00767cf5a700ca65fb80d21","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.0-tezos.0.tgz","fileCount":54,"integrity":"sha512-POR0ZB1iWlxZlNJGMj35XFQZkDVPwTEGj2ORjdbhwGhH45cpDIBSVdC2s2HPlbgfkOos9Sf8BSCl/w7Zl0Rzvg==","signatures":[{"sig":"MEQCIAS0FJZSxDVguIlkMgXOCa9O4sk3zqHMYhtPCXcDbFU4AiB5cZQv5P+4mMal5KWfCfNtUcZ4to0iuEPJvfmsA8DnHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5358627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0EPICRA9TVsSAnZWagAA9BoP/0t7rppXG4oF3Ai2K/kS\n1MaBpAyXdyUwGIwdty4LsUAiPng85ifny3S7Ko59XKOMVI1FYVnovyZCpj/l\niFuUUqSYBv4zRf7X0KhcnvzDolPK8Zh8IJEN+1bZvEj2U1V2UvSYyiAsBt/d\n//Tz4Ye9sWE9kOaUyBBj1FlqDciY3G9gIk7Dw3IpOKGS7fz9WY+tq6iyneLZ\ngViG3NHgFgEPJfaEXti5iZhmIICJ5KslL7qPmVMwYohuFE6rqyD3HQcwdfOg\nNEa4uSHZ0GYBFrD4b/pvpOnLdoXmZGW0+i5CC5mTSf7/C9vQZnSaaudvfa5w\nMWbjfxMYrxZB/PGKpuYM2ubjuxOdjNhdsqlh6SnrXBhthbikmoRo98XgOOzc\nmr3W7R+D/Uh9DRGvhZo6uzT8wtyUSElmsst3XK0354m6owFyyfa3hAuSvqnU\n8ajEaYixVZEE1xJtTAB/w3WQTlU8SOL+0m7yq1Az6JP0FvgtFU3L51KQ/DJ2\nAOjueoBOkE6oGHyzGV3P5/yyfBMcsN+jcHfJK1kK5KccEa4zQ+5U66tI7/BN\ntWtsnLQESyjNO7zCfhTVtqM2dtCjBrwyU03H3QMdejl0s5L+hrO/5U7vC/V9\nMbWiA2NFFPfW0KO9Lv8FB2Zu4UI5+kM6audIR+VdvaS6koBqykHnQOrXT1Sq\nmraF\r\n=fCrx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=10.7.0"},"gitHead":"ff625e64dbf3b9b106957bd13391edf061043f88","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postinstall":"patch-package","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","build:tezos-image":"docker build -t trufflesuite/flextesa-mini-archive -f ./scripts/docker/Dockerfile ./scripts/docker/","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.13.4","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.18.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","bs58check":"^2.1.2","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","superagent":"5.2.2","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","patch-package":"^6.2.2","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","libsodium-wrappers":"0.7.6","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","@truffle/contract":"^4.3.0-tezos.4","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.0-tezos.0_1590707143475_0.029197073357284387","host":"s3://npm-registry-packages"}},"2.11.0-tezos.1":{"name":"ganache-core","version":"2.11.0-tezos.1","license":"MIT","_id":"ganache-core@2.11.0-tezos.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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"464a75db0b14b1269a73c51b4346f754e2584a93","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.0-tezos.1.tgz","fileCount":54,"integrity":"sha512-lm4YmvRlTuauYr/naaF3rMN+ykwbogrcEnKUl33D4isLK4IGJH5dnyLfxWPpxicEVt7kUWH3pPPbI+YSiG6F1w==","signatures":[{"sig":"MEUCIQCPZIzH4cQda4/T1NQr+0hZ7DJIPtbWJMQD7zPhxUjnxwIgdKXpvXneEQwAfqyqVbVyqL/daM1LixiZBKi52dOBcrc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5360634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0XxeCRA9TVsSAnZWagAAw/IP/16g8mHzX0ndU6Zoh3TO\n/0DlZ2RFLYZhYwCN55blnwfojyHiSm5Pi/+h1+lYQfzDOf6uwAzIaTpsHEHM\n3ma6/+YmAYFj09oXy3RqSz3ey5fDtosvosxmc0md2l0FtIQ8pBye6SoS4zGS\nGEchadBdF3f2TnSRRCLUB9rHgm6wnnodoz6IZHXAHY0w9SiRToxE85UKVhF6\nK32vPZqIR4vVzgIZQQvPb/DhiNrsAlJiRw/Cte8ihoXR9VTQ9YfSEP/JAXks\n4kHxNeZhfWL+I5A6Un4WEwM80TFGolT73WJeVnWKmPG5RVznpFKNQWWVAeJB\nqdqlU0wLbsfsMPcYMfaNh4l9VqyG1qb+QXcENRMJX5hipfuXRYzQ/tKkqfOo\nU1eGFU0oKaqYe1Q+v74elZ8o2vlmI5gtr37gBNfHNbv4lKAjseKvgE0JAoMi\nOwGimWsCnrbPw+tKXxe0+/Pt6gC161QPoquzoKywP8TygMtSPGzT8Vcb3RAG\np9ZseWPvzi10cStIxb3pbc0OVhNRH68ahX22yonQ/kNY6WecUJxSkQom586H\n1pT4E8paTNxyDC/32u+C2OmqWr/RTTy+zGho2nD3+sk01173uYZ0xjxgy1Xb\nwbXOyc3yBsY+vOi9P+ooCpr3CMMF86b4DBw8rtXINoDzs/IeeAbwgLDGcgUC\nyoC4\r\n=SCaX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=10.7.0"},"gitHead":"21181ed41f0ffdb465d7466baad644d650886c51","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postinstall":"patch-package","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","build:tezos-image":"docker build -t trufflesuite/flextesa-mini-archive -f ./scripts/docker/Dockerfile ./scripts/docker/","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.13.4","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.18.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","bs58check":"^2.1.2","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","superagent":"5.2.2","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","patch-package":"^6.2.2","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","libsodium-wrappers":"0.7.6","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","@truffle/contract":"^4.3.0-tezos.4","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.0-tezos.1_1590787166333_0.8020685576216937","host":"s3://npm-registry-packages"}},"2.11.0-tezos.2":{"name":"ganache-core","version":"2.11.0-tezos.2","license":"MIT","_id":"ganache-core@2.11.0-tezos.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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"90127e7905245b555487966ecac74d5e02c2ca68","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.0-tezos.2.tgz","fileCount":54,"integrity":"sha512-9g8iDktwgsIL47KIjR1IilXIvx5du06B0wH6OAZLnZ+dPy7V7kQJgD4CSp+0UjTeT5p7Sg9JgpTeJxhmed1jjQ==","signatures":[{"sig":"MEUCIBed5BjvNGmjwUdfNR1yhumJ+/O/hzVgWhFS/8p+gRWsAiEA6UrB76TOZIQZ06xAuYMtCc8E3l01fydXd5V3JYhCx94=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5360211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4Qc7CRA9TVsSAnZWagAAliUP/0cZ3ukyIM9NxFXi/UEC\n//urtN6OsGlQs645LnFfo4chXXmvIkXfI2XE7AGB5e2wkQOlRrxQ1wCWnhWb\nQawZ0thK4W6HeLkZyRYSx9e7LKPQHKyEBTKNzopaB9cVDiAvmHW6F4aAk2Je\nDOXqZ/fbWLyAnLuObADfMoPWI+H48xfRp43M5OBLOSmtEiIoIl3ZwP5VTaOp\nUCuTybBjyk0xJIkrV4iq3x8qu8ztY4olU1anlqufXYaxSBG/enwZ1oI5Cq7/\nd/cb29KTEpujqXDkdzQ18R4sdOAEYagua+7xkiEK8+3+lWGq/knmwIoRkx93\n1JhHO1cRNDBTMEFMzPzJchTcD7EfJ8rTtvAEWN5q5P7a2t+NkcK6i34UTsIW\nvqq5dtsMSrWtrFss7fYTE4eWjgqOcG/ffpjMVKz8Ig0xEPtzhVMgAEaPxVP3\n+kNmUtWyrw+1IRUCOlGW+qg0K9RynicZvSNzq8HxmYaMCl982lYtRbk/8x0G\ncCCLz7epwUlbONC1DOfYyLEvce8vHdqAV8M85w9A1fEhOTPVlGR/SJrxEOxn\nqGnr3sGNufu5kHzT2/Kn6jTpJ3WNYsikPloxXbQoMZA5FIUoU43mUVx5NG7T\nf4Z4kbfpbRcBalMkU5QNhY+j1QjChqb4KfnQzur6gsWDVVolNd+yOtHdfhY+\nOXe7\r\n=7tTx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=10.7.0"},"gitHead":"9395562d9bcb6e2bb9d104898284174304a21a43","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postinstall":"patch-package","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","build:tezos-image":"docker build -t trufflesuite/flextesa-mini-archive -f ./scripts/docker/Dockerfile ./scripts/docker/","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.4","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","bs58check":"^2.1.2","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","superagent":"5.2.2","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","patch-package":"^6.2.2","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","libsodium-wrappers":"0.7.6","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","@truffle/contract":"^4.3.0-tezos.4","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.0-tezos.2_1591805754777_0.3836112962312226","host":"s3://npm-registry-packages"}},"2.11.0-beta.0":{"name":"ganache-core","version":"2.11.0-beta.0","license":"MIT","_id":"ganache-core@2.11.0-beta.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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"206af308b8ec790ad7d35dc94295420eb7de59c2","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.0-beta.0.tgz","fileCount":50,"integrity":"sha512-/1+io16xIjzZjq/6JG7G6AQzfnj8nipzoZ5RdpATZOFr6elR7HJGEDFJxoGxk8Nhvv8YOkewVKpFVsudvJdr+g==","signatures":[{"sig":"MEUCIFQuCMRn/JEeq7da4Ks5d+cagN8pKXCLSuSasxwoZ0FBAiEA7xu393RBqztjjuH31IvOjanxrCVnPOuAeD07Ruu48J4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1670832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe88ZfCRA9TVsSAnZWagAA2eoP/AqTyvvLb8GuBsW6r1rR\n1JiukqfP9/M8brOkVcTvpJjaJX/N4BRdIcHWIIgxymC8aFIgUcbLifG7c2y3\no2LaVVgh83GTs/pr3G/uwgtzf9H8L3pV6GP3+orS28qldKcN8eIE9k7LWpt7\ngkRWQOM5g76uqBIv+vDG3eOlY2otIxk+IcCxqE2S5/+cDO7NWsm7uCBHqKOd\nBBwciy9qKPmScFJpZxeCYspFp6qw2u5i88XKJ2veZJzbTIOM3E1gAApK9hcS\nQzyY3TySoo7wLybNlPi48ovUJW1PQGmgMWqijwpYLtj9ka7QUzj9tDdzAXUT\n33m6vxGUVUkl/FsPscrCmpROrh6sg+u7WjYMGEKouRYbt8IzUGpEWEgeUR8r\ndSmiae0RZaU0YVBF9THVW97VcGk3yivqGli0ZhGNQOYCAt1GcFLzHYHfXt8k\nqJ281s5i2zsw1/OgHqwpSzV4BzEc1r/wMaeMCgMp5JcWcPDk3WCMbKwhIt50\nqu4eqZtPM+vqGU203ynFGYGckdpDPq8J5Hg5pXEjOqHlIojeE063AprO5oVy\ner511/2WSkSlXFgsgwmURNEWhmfEUNHZe9dy68tSOTaGIvagaIBu8g7+9bqh\nek695IPXjpS1rX36WU/IX2alCzxPSE22ru3sWEmYqsBVoQXagDlPum0RSFhk\nBAHS\r\n=23I+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"cf3ddb10fc9c9809407743ae587d3704db0f5105","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.4","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.0-beta.0_1593034335402_0.39383679714347974","host":"s3://npm-registry-packages"}},"2.11.0":{"name":"ganache-core","version":"2.11.0","license":"MIT","_id":"ganache-core@2.11.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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"f84dc7d872464f3cfe5605e2832146e3d4817c4d","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.0.tgz","fileCount":50,"integrity":"sha512-/3hmkl0+CMLDvJfqgIQl7s+AGqZxqiJC8gJFa0k/yoMQvGUZBStcE159wO6aa6Lj/JI1OWR3JmhPVpe62esCmA==","signatures":[{"sig":"MEQCIAXDcX/vBqYOXl34/sxCcKdu/SHi3COZykGU/iaJXUFGAiB1KnNjKW0pjXmyw0uvrWm/pvOFMIXogsciWQz4fCD/5w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1689341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKswLCRA9TVsSAnZWagAA8oAP/iLjglXmR8RqPkUhabRl\np3gdIA+Qcy26x9hFvqNwDmu9QVwiWf8EzSrVpKit1M6pukwT2wDVy+aE7M5J\nNXh3EIhTvTG0N/Sb6faK3DpMVe1ljJv+jCUfCxtmq6WclMBdYR8DhiBHLogg\nntT4rtk/MyK3Re/bfssZoWeBpYHn4CxqclBz+D2kq5sDQ+wuvp9CeEtz1n32\nCZpXg/79rsBIdZNz4ICA4rajiW0LIgwqLB8i5HNO8X9psSZlfRX92z7WH2Fj\nxVHzsokvHZ2T5k/4kYI84sTnJH/mEtobkhvdzAh0f7qbCZJLmjFlToMmou5Z\nH0jgi6FhIbWxomC91MLe0Unylry7t+Awlq2bg2+izUCjayb38fEN7wLhHaf9\n2tYzwIKXTQrsxSQG++5xja0DLZ1OJhclVDc2V0qE02vxA3qXOzky6KocIv7l\nrv1KQ5mEQ2OnC/4nuwcL/z6VGEAzhJmOjDHl03vnjwj/O3XeXiU+qPMWpFWM\nevOHXaQ0dEpYx8lljoiLqjA7Pxzn4xzUEJzMmUrOn9BvlfSPTk417mxedoyw\n+0+e1kXUjxx2Nd4LHq/k0JvwU7r/p/he5uPmpNUMAWHvya94yHUsyQNa4qMS\n7EEV49cM5mFKcp1Jl5PYrUeUMPAkpjZpeaA4VNaKei56mvD/3XsRmA3dCixS\n7Tuk\r\n=uT1c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"823dbc119a5236e4d6c0fd2bb8adca684376f4df","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.13.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.0_1596640267231_0.9003675557135777","host":"s3://npm-registry-packages"}},"2.11.1":{"name":"ganache-core","version":"2.11.1","license":"MIT","_id":"ganache-core@2.11.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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"8c5d194bff17e2ee1c47eaa34323c33955ae2cc7","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.1.tgz","fileCount":50,"integrity":"sha512-Im+dcBVqpQgIIHr/1EliWUkzCHL7+uBaSxOa3BKK273OkVX7iWjLlGOsz/FAakg/UcfjAkcivO2ixAR592h8qg==","signatures":[{"sig":"MEUCIC4KT1S+2hduDL84E+VwXrhyqIKdOM4wCXHk5Ai/SkbuAiEAgMOvU3ZBURmYyhPVdlYn3tj5hNBWprYfkY9XshdCkIg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1694075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKvTMCRA9TVsSAnZWagAAhjUP/2UqtbKU0uDlgCjU2jTD\n5hakjT+Q38mKHDyWZ2OP40NsuvD15jSS9dMPF+Hj5rlBEKNBrfBn8RmfB5G2\nLjzYlEqOSS1b28vpakgHjfzkW7lpnJKfpuc/4OgTjKDbU4Wk7vPvGb6c1Xhk\nyJoSlZuAo2VL0uc9L1e56wk0eK4butLVIVkoHWiFPo7u27GwKLiEESz/BYAV\n7FJgIj/UsNxivAhpgGqsoVFxOF8WcKwN5RTEA8FkB2SccRcPYHrbt1kOfFPX\n0lV077Yf2rgABvxrCpfXsSdbB3f33vXq5EYTs15ckUYXwTMlc4vf86rL8Hw6\nrOWav/SW0+cMNBRXN4XMxdEOPoBYwqSuJEN2/GWeCdz5h5v98qmNuyjs86br\ncmd4wOKJ34d2uMh8r9V3BdKA5h64GdabkrcE9WqWl3yOqlCZ5aJXN4sXmUil\nNjQTX1Y0vW3aLcLfz2qhUPoPZjF0PSQIg5thEtN0jnLUv1M+mpLGj5OxabFc\nL11S0FkpTwckAIv6U7NrabFAxnBZp81gebgKLH7Ky3dT7+FYCe5sLV7IH/Ab\nVYrSiyzu/vrXv3eqFNy8I0NjrNz2ShROTCpPDlAu/WVvgRCXluK+Hkx8VfA1\nspKKUACEa5CrMga8s1qo/HHhZk/Gk32GbG/A5ZHQOuZkWNnK0b9Sk+v3A3Dw\nc44k\r\n=jJL2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"90b0ac536c84ccf5b95aa15b4be3fc2abc640645","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.5","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.18.2","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.1_1596650699946_0.9281204286029834","host":"s3://npm-registry-packages"}},"2.11.2":{"name":"ganache-core","version":"2.11.2","license":"MIT","_id":"ganache-core@2.11.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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"821a8e7beaa65b32e408ccae2e2ec49194c4e378","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.2.tgz","fileCount":50,"integrity":"sha512-yZSMdR2xtqG2IdApeB6OywtMxwcHMp6Y5TUBwPyKe5/GripP8xnEpSKBluhxoyqEotg+Z2S8mjIXJyAm+NnMGw==","signatures":[{"sig":"MEYCIQDVtAb6jPWUA7Cz5gXCaNbhIYiG88w1SHF1U5AsKofLAQIhAIwC7NGuB99M91JI+8sJUWC76x8BeMdBKvYvBD8693zf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1693639,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKvYWCRA9TVsSAnZWagAAzEgQAJS6TAcwm5ng9VM79NZN\nuvoM7iyrxM9FjSpEkD8g256lwxmAy99Li9KSjGjUKOQR4bQtfRSRWkLVbmUR\nwVLpXjDo3KmYW1lJYOG1pInD538pHOO8s46Uxcq0iJvHyx239WIUOD4wWrEy\nOvy3z180+lsXEfQyS7KTLuo4jLFQZCNOkDAERJ4PnRRn1+Z73SPIaHaLf+a3\nQksrwgao00lQ3relxsEk6VeSWAnXCNo9AT0vBHxzItwpBoExOohoGNQBx/PH\nNlHvBp1U6yjKeFbskk3R3dq4B9MpMBWPnx0ap6avu2czEhMwUm1+VPox62jb\nHj10ELToGWyNjgLs5Rd52YSxeh0FmMWEgs2xUJ5f1dhYqP2aSB9WjZHobuQn\nhECkKJyE2tc3sRHRhTP9ahZehoHXqy26ypXu11vIWme1nrilWBUKF9hF/AmA\n7XJXW7dQQpRcdy/Da2Y1XDMiEjJQ1kP0iRX1KVlpFaCqlkN4vfNVbz4cfOvl\n0ajMzMTE8pzUG/rulCDih1YcyaBp+ERAlSRIUyw6/slzM7Uyou5rDOK8+mw5\nfWXEi2n1yKQqYo/I785HcC42fcAZcQZ074bIzEiVYuHeo58hl7goyDWn/PQX\n4vnowAUB1rxIkp/k0TzEN7LnEn41q5Q8/1tSS228AYDEM1iwQpDlMa7qpBMq\n2Vlx\r\n=3bmn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.11.2.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.5","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.18.2","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.2_1596651029931_0.12376412873198417","host":"s3://npm-registry-packages"}},"2.11.3-filecoin-alpha":{"name":"ganache-core","version":"2.11.3-filecoin-alpha","keywords":[],"author":"","license":"MIT","_id":"ganache-core@2.11.3-filecoin-alpha","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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"dist":{"shasum":"a953c015db1369fcbb23ee93a70966eb93212c72","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.3-filecoin-alpha.tgz","fileCount":26,"integrity":"sha512-3Xem7afBxg51/iDLAyQXCUsE6dEe5Ge2pX7W9ney907du5N2weNT6FdmJUoMWwRDs9HCHq9deAjeg3aHjklpwg==","signatures":[{"sig":"MEYCIQDuOENQhz1R/9rIaY9r+rRwhTgOR/3XJn6XzijXG+Pa6gIhALaSJTyJfVzJ8DMHMqmBt43q7fayRSSH8kZq4M2Ysngf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":52180846,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLI0iCRA9TVsSAnZWagAA47cP/A5FMCnIVTaZ0JxEdbVs\nhbwHzQVO6lmaJGMNWcO62apPHSgur0bgGto+hayzcP0J1XrcKEBVvbmuXxhV\n9vxc6GyPrE0OPRq+2CUcMIP0Ca/bQb9an/wCQ/TbZlCQsKjxZU2kYuADrQq7\n52wVAChAfyzmARcizPa00nhb+l1j3FVO6oqrenIO1HBt94Kn8Epx8h+iKVDG\n/vmTBsT9i5bp2RZ5axQDc/lKdw3NqTYoak3iDc88sOSeVDRMsryShoM1FVHe\nnpF3mEMP3fzsJCdsMT9grxwFqGMFrqnRzQjoI/owkwT0J6H7Cwkh2fzoiTgQ\n2DqwQ5OK+EX5mqK2A76MlaPUT5JBZtM3i1Fz6zMko7OmBJMujUiy3c4ypEEk\n3Pn2AppAP0VwPfQRW1YbEnhiNRnZOpOosTMxL9HHXsssucCqFPYpe4YZjrWW\nXlsMZoTZMLUfMknONo4QgQ59a+iEBCNRCHCtZPDXk695IOGWbwTuMY9roM5r\nqW63QhdnM2V0UOpL5OEW6jfXtIgcI8skKRdwL41OktWT1tcAJx+JfPwZPOus\ntDe0wmpNOYc+E236oic0elCtNKrg+6xu9QPaBNvduTF+seL6FXctY3fwTreH\nMzkWBPxOBbVdglooejsami56YUk7wkK7da1Ps5opGPjDVM7CgO9OwoZTJwtj\nuEMA\r\n=/KXa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/bundle.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"_npmVersion":"6.4.1","description":"","directories":{},"_nodeVersion":"10.13.0","dependencies":{"ipfs":"0.48.2","leveldown":"5.6.0","bigint-buffer":"1.1.5","uWebSockets.js":"github:uNetworking/uWebSockets.js#v17.4.0"},"_hasShrinkwrap":true,"bundleDependencies":["uWebSockets.js"],"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.3-filecoin-alpha_1596755233808_0.2191019279268609","host":"s3://npm-registry-packages"}},"2.11.3-forking.0":{"name":"ganache-core","version":"2.11.3-forking.0","license":"MIT","_id":"ganache-core@2.11.3-forking.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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"dcac21c87bf9d7e59973fa48feac9fdc1ed04a1e","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.3-forking.0.tgz","fileCount":50,"integrity":"sha512-Npo7SMPZGj08CVyCvFWnRGvMVTly8UeKTjwTU4GWCct0AMwOhERf7dVjPrNw4ElJnZH9XSjWXw+kEaZjAihUWg==","signatures":[{"sig":"MEUCIQDGT3Fc3u0zOVfe+7+270bZblT814nZ1sIerWDHlYOm+QIgVdlN+mvZXkhMu2HcMpOxM77W1miefqRSNb0NNEgySOY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1693081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOzwiCRA9TVsSAnZWagAAdGoP/13jezsvUmeoN0L+eVvj\n9PK2Xs224nJNQwQpvvud4PYc1lofp+JsHaUMC745O48/g36zfEw/LQbPEnB+\nlfRZiZBqTnoYMSVxF4C5cw4MtaS/0jRi0rO0qluUYMpZv4O2LrHMUjc8xRaf\nj6AOKoFKwOPClTvwW8zlyQzVWOTnfpREsMhFNQyP1EXWRGdJUCdYToZnq25M\nQklXdXkw+o3bubQvpNC/MNlTDg4T7oYI0dphhUlhYy6rH70MVCkfR8VeMB/W\nreBB2tTUYKHS3lYX+oczsDUTB4eOEPsYUX8L055rn9gTvpGzf2irF+EFvYD1\nXnR6S6cOZZ/r8sFzGXb4KGGQyN1RnbfVAz5nMDFJ3/SePXza1wAM+2tU1cZ7\ne38G2ZtypMd9oidn/3H9zi1WZ9PaYFK8aoFK2UUkX/dNQzQCFQPgStMv27bh\niTR+CYIAezMKk1otXYZm1BXe255RbON58ZYyErEdj3sTumxWGa7AnlPX6r0+\nALnYBxXO1uBjL46+RVoy4fxnIctsR98nJL10nF6K9biT0KCGD+amLR0eLbnr\nzjyMUIWAxVR5Orm83CYuTTZcx/ni3U/t0a0k6229FOu+GwaBxZzOReoZaGzJ\nmKmRreFdY12XY65lNuXlQ/oY5GBLQZr2AYr6UUHQrNEYMWXirryAF7o+nM4R\n9wEo\r\n=JbuG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"34504feaa59d7e59fcc360c0332df10f57131b51","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"seesemichaelj","email":"seesemichaelj@gmail.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"update to ganache-core@latest","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.4","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.20.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.3-forking.0_1597717537508_0.8012728828643465","host":"s3://npm-registry-packages"}},"2.11.3-beta.0":{"name":"ganache-core","version":"2.11.3-beta.0","license":"MIT","_id":"ganache-core@2.11.3-beta.0","maintainers":[{"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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"tcoulter","email":"tim@timothyjcoulter.com"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"8186c77ac7fc19179e053c5193776f5e99beae76","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.3-beta.0.tgz","fileCount":50,"integrity":"sha512-YLT8H/1X7vwY7c/gsCqYWgYw0GiyimBFSiwjRGzWUxBm6fKe/9QrlaqENHPVcbQZuL5zwklEbEiLv0lUVsXB/w==","signatures":[{"sig":"MEQCIGKpsN7HyvulR2+IsGwDAJBjL6cn9m08eo9Cydbz0g25AiBmqggTdKxCQE1xi0MGSfmX/mw8HINIBntps9kXY4rwHQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1706680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRGJICRA9TVsSAnZWagAAuQ4P/3P9y5z96FsEKU4usxyE\nU6o+hoedvB4SopQvBiV3HfRFL+M9FSPrjVT7LNAudzqcJl2cdqdjsj9KFG2B\nkB2x0h684ar8nIPypIoErXY7LMPSvk9N5z3CyLVf+yAtUVI95SweUKpEZPYD\n26dranNlgQy2Hgqvd+fQjxQC7c4opZT0LNOpa+t5Z8eQ3OmvMceLkfZk4cYr\nKuoC9qugp+2wJRDXGQcvtTh5AFmECthFl7MWOlxmTO7EIdP8j0z0GWJSaPt1\nuZdw8/L0rkhE8q4NxfLPOWUweGvaDq2HWmZDoG0ZUYr1aQjeEFT8vENB1TZ3\n0tDfhobPWq1vFZmXa8Oh6XZ3A9Fpk+Q4rZVCpWjfhjiyIpywLE+diJaDIdcL\nohsO++lxHoYhkR2rCz1GEQ1qvPiTphs2QalPfQjMUEu9+aqAw4WPEcexbHb2\n3BBqrxudmPP9uD1U+WrHM3kBOIadrc0kQhcWuYyR4s9IHSOlrhJVDLuMGKgH\n+8id79efi2I+j4BRgKAIop87zeU9ewlm8lmt6QRFlajVfD4q2HPwmjcyKmlb\nk9yXyC39VqIpmT2ztOX+fwBXOPO/xbh8eOK8JatdBbw/hZKvJxUBRXTRh9iT\ndKYR9tJSEGIhhRNK12PyogtfNWE01yKTFq8VvdmX1uZcIfKGhzrNAH/TkVVP\n2BUi\r\n=HlBW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.11.3-beta.0.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.5","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.18.2","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.3-beta.0_1598317127980_0.8794280682961886","host":"s3://npm-registry-packages"}},"2.11.3":{"name":"ganache-core","version":"2.11.3","license":"MIT","_id":"ganache-core@2.11.3","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"c59e6c34b03279bffd32f4694ec8ed6f5f1d76a8","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.3.tgz","fileCount":48,"integrity":"sha512-SsFJUnyiZI+jW3I43XluXi3TvJC3Ke6vZkvN6NjbWpXvi6dOrmafkyq9Rq07+Qrri6BLGKWoZcG8HfH6ietuqg==","signatures":[{"sig":"MEYCIQCMzPoMsPSBaQnCiD7DWuSVDQ7dX50jtSAx/BzghVwIPQIhALxOkY1V0f/mmWlz741QqeoZDC0RT81VbAqvwP/4ap8c","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1406673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfV+NcCRA9TVsSAnZWagAAGdUP/jLGa/+7vS8hT5wXMhPN\n1wS1ptvjuwjGLoUHWEspAAWcO1vtE2mlH2ucW5iB8l+B33kdeKhLwDcl/JW8\nTjfZBFK8NTDdo7DeMlDNZj4GekrpiShK4NhluGLM9uPeDq3kD+akO9ZDg8LB\nDhFnEbJt+GwJkP1nRrEYMi5DzQS9S5f8r1AbSkO2UWMlM/CMEbJQq7swRfMd\ne6a0QjsZNl0hgEblAbJ6QbmAOuXymC6qhRnbT3fqXsw/w+wnQLHUJM8mORnq\ne/dTBBTx8nbK0+0vhMz6LaWnqRmXy1ziArL9NOosIikuskKceDODy9R5dTlm\nIw5wfKMjkQKdFWfHz9+jKDbMZ6yv5JaH5OxQV8q7Ouaxfz5UGtEtm8PXkx+u\nDJnJYjTx6s5IVsr+Gya8X57xpdlmbtD54otVTA3aSGEdqSmjZWNsq7X4xkSL\noBQkztWb7CNEaXYtGMxKNyLov+LhYokRysvKhH3N1q7gDVJ8fskDmsR18Jkg\nJUU0LHFvPbYIIDT6S06s+cjgnjFx/PHH3EZsTAS7mfjgdVy+Zo4UsC2gxN7R\nejMfL0V2Cqe4sYVBwQEaB0c3F0NF4tDICzdMb4E/HFYJcVxl4K1FS45qxicM\nZ0u+TT+ZxVfr0tEr4zxJS9yerrA5+cD+9AE1YsICnLOTGz/4Ed7txYNTM3vw\nHrAt\r\n=OLK3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.11.3.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.5","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.18.2","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.29","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.11.3_1599595356036_0.08555177533037983","host":"s3://npm-registry-packages"}},"2.12.0-beta.0":{"name":"ganache-core","version":"2.12.0-beta.0","license":"MIT","_id":"ganache-core@2.12.0-beta.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"1169b89dba43fbde8dd3f3978e4e88039c4ea204","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.12.0-beta.0.tgz","fileCount":50,"integrity":"sha512-riMHLk3N3A4w6H7SNi6xb/Z/3zZEkK3pNIUknPqdSda+N73Jj+1/hE8/3Aj4aUaIM13tiBBDJwpJeeN9Sjojmg==","signatures":[{"sig":"MEQCIAsPz0kMJKYja4LVRF3ZLVwdKcxTLO9E572jgbEwbceTAiBM6MnBWSoshr55hL+vIR/XBwqMESGwAzKvp7/Chyfb/w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1620570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYQMbCRA9TVsSAnZWagAA0+4QAJY344Z6k9EVpkN/rZYC\nvxbh7mRtrbEn9Dv+kvn/hL+1csrsnNgVRl1osUAS0csCyNDAZ+jP9loz/5yD\ng3VY3T86DdJDsTDAOESxqfX3gpQQAXqL6iH0VZd3p26XDEd/muMoI+FqRBPW\nZQvF5tlFguJt/3UtiqEbkAL66LWr0FwyuzFeuxXO5O+tOyssuCXIlz/+9Jtc\nAYPRhmQnI+ZmQli0CMtmf+Aa7FI7+6WgHg1q8V1bdvsfxkz/lNWtW8kFDcLB\nRGgyTwP95RzrUZmBpCIQm6zsxS9uKDnXfCkkQSaFGGzeI4K4XASXQkdPqOPW\no3BIczJAdD/ntGWUH8fXg7EoxwzBNrn0qN9+DirHK6bQCwXVNmH3wtHPWUNj\ncLMhPJIPKRq+W5jN8vd0z1QrZv9IKfcF4C44YilH8seUi7u6Ec3z60GzrC8r\nYFyhQo+CmnsUkDIpqdtHFrfXnfnUCSBthC/FW9OQ1oLmGLq9MpSOtpWuiSTI\nfAFHKYCb2O28X3HVOwAIKjgAozaLfbp8ndgyKwOZaOBo7p7QXAFxoNbXfFdm\no9wHzU8A2SMfhvOjxbO7DgUjvbAM64ITRmDGiDZ/6OQhQBz0zyDvdTp6izrM\nQ0m0dE8ciSpXx7g0NyCQJKuab63h8lptQPHlIPLS5sT/gcMwJ4siyuHwERpA\nVVEW\r\n=Ei36\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.12.0-beta.0.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.5","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.18.2","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.12.0-beta.0_1600193307073_0.012411800194671141","host":"s3://npm-registry-packages"}},"2.12.0":{"name":"ganache-core","version":"2.12.0","license":"MIT","_id":"ganache-core@2.12.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"90143086f55eb731f7f857cf984601c0455e0efe","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.12.0.tgz","fileCount":50,"integrity":"sha512-Z/OroSpyT/EgzYTx9ILkC3BE9zL5acDpAlKrwjPvWtO2S6ROjnWCvYvtpw3Of1TX7FLj6FVHUeT6HtrxEQGnPQ==","signatures":[{"sig":"MEYCIQDMpQXW5mBERRfsHKrpEWDBko26YTSQs1ybA3hyME0RWQIhAIAjDcbcvaykmmlOqj4FwWDS9rkZnZsdh1m260zrrgQ1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1619255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfclQFCRA9TVsSAnZWagAAf/oQAIYuLG2n8c8kgBEH5kod\nRvCkij4w8VLdl7p1thArF3fmc0Mu0nVkwmX75Iiz95dRJDeVDs5hYjWbMwj+\niWSxAv92xZ8Hws+l9SbSWqs0Zut0DqkfVz8hjwB2BH6qekNcAWwZd1uMHbxD\nNIyj8S4bKdMzBPQ3aLrZoID6x4V1IiHN5+iXJYsGVPub8yzrmChy6zOH/PU5\niKke1423OnZ8js2Rz4TfC3Qtmcewu8y35xdfjQvjMJJ1VC94Bl/Fzdw72DM5\njw7tkQ8br2R53DCq5v5N5G/UdEaHimmsKJun/wctv+yCt9z+OV5q0Vp1smaG\nTUJluuiy1k9IaucLiGym83OzMNgNZ4hFDwUCzD3AzUTLMFTiMeJMkvmfAp4i\nJXvevQrTCrxbieTEf5HgrWC8fAfWuqXf+me+jLEGLSkC9FDlEkkg0jXuAGHt\ngCdp6ygZKEW4w/nbb58lCNfHPt2xDo0Gm/vkwblMHzRmOxxaB70OG2BFkRLO\n8Sr/VahZuH/v5SrGPb1dBMoF3dVoTVbuKoAopc5Pjp0WzX08G8ebnBWx3mLU\nYFR22XdrKIyiRAGsJg/DYUeOcNmF3mLbMSCwHOKkTR4NRh0ogRLPycgnNcT0\nix6PQ1U+UHiEsBCO9vBMf+yPsvoWDMNjX2lUzvKZK7rVtcwSTbxOqkbTmOpf\nK/41\r\n=wNsU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.12.0.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.1.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.7.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.12.0_1601328132931_0.005005280145527147","host":"s3://npm-registry-packages"}},"2.12.1":{"name":"ganache-core","version":"2.12.1","license":"MIT","_id":"ganache-core@2.12.1","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"c21e8f7eca6e15f13756a353928357e0b8960d9e","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.12.1.tgz","fileCount":50,"integrity":"sha512-gycoVl3TChAbL6ZZQrK1gS2cNMheX+JXVBKTpMAzuLHwb5gE1CB1s6YYN3F7rB86opaEuldCSuTJK1dv4xYRAw==","signatures":[{"sig":"MEYCIQCeouDc0q/aFRRzj1Gd7OBYftiL15kGkkOAz9O4XtjzpwIhAOH+oHWzczdnGj6ZaUdXwzGjAj5qg64QTGPmK9ubttPR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1934763,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfclbHCRA9TVsSAnZWagAAJ4kQAIahBjXbGmTIp6k9QAEk\nyqV6oSyBRxbKL8CfcHaExtz4vZY2n1kyhXeOLxBVnWFDvqq0sV8pPNW2iTdU\nU7coE6PhVMe9lgU5t6HvlMGYMNW6lNisxDW59unY4eCccWc/zn+G5s/gjx8W\n4fXCi1e9DT+AT/yCLDNjZjxVd5y8kv+QqxnIsT0AdsRTPedvCE38RAGVtnNN\nCZaluQJaSmOzt+9FfK8obJFT0KtRVwWDnARNe28cFMmuhifcnfDWRA66W90O\nFWPgt6Nc5k6m47qfI0D+ANq1ThMkdYQ8YH+7soYlyTDf/HZmxOa4NiPDzvZL\nCBchQ3cVCD+Mg4L7TxW2BWPbUMG5NWazx8IdVrvsM8DLLfyd2+F0qkKDkNa3\n5kuno7n6ZBBxVww4ReyA8ZUPfl7DHcrRhMVg0O1GSjYXKMHsBMa27yfwLsrv\n+AHLlTD9tnRkjoDDDH3OFzCQweoflEyn7Bk9VDcX/0d1L10tfUrkwkY2qiOu\nOuYQgUWPhRuTt6oVyig5K66P/eRlAai9iSKaGHjSD/xXQQzbiNolDoD5lHm1\nlebCN+igNMXq5rRQ/6FJ3pC9XuFoSNob+45gpckvFewI3V7yoN6LiYdD+zd6\nOvKv9oWUm5EM4ZB1luFH1ydY5lGj8rKS/PcPMeD+CbtAGetEvMLKdOlBKntc\nQAOh\r\n=Cea0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.12.1.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.4.1","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"10.13.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.12.1_1601328839150_0.24702584450282106","host":"s3://npm-registry-packages"}},"2.12.2-beta.0":{"name":"ganache-core","version":"2.12.2-beta.0","license":"MIT","_id":"ganache-core@2.12.2-beta.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"a94d2b1f799023e0cb3567097899fdaa6da90874","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.12.2-beta.0.tgz","fileCount":50,"integrity":"sha512-r5bI1yXshta4ZqFeHdoT1ZWnjJdqzfv0zsteNoOO+h72bdROmifA/Oh35eGq7I/GUQwwuTaYt141CPF4FT4Esw==","signatures":[{"sig":"MEQCIG8KMQ9lDg2WEHTYty2hqTXEq2/pZGg6aYJk8XlsASoaAiARXUWxIxLSt5A2rIQF0z88aea/UyT8l/OlU4Eh0Y6P7w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1951045,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfc7UQCRA9TVsSAnZWagAASLsQAKRbVNtW6bhX8S35faEj\nEmh34sRJo6sLr+GPbdrjoTwVyldrHHW+WfhCzIMO2yS/ylyqjT5jquUl6ulB\nV60GcG9NDzM7xpXofPtOsQExu7D9CzmFD0uSqigdI2/4iq/IPAW+iq4geyPc\n9X36DbZZtso40STDMXGoXYn1gBPc05Q+HH7gG+J5qEZrKxjQehRqVzWY1urP\nwPDED4o2jpLeCza5D6IvwPvBeJtlmSw6zCmhiPXkxr6b5Z9S85ufTTikDM55\nC/gs/FIz4SX+WWwryEbCNyXVXouQXm3OuVUX5uV6MOYgNJ5dwpUl9QecVtiC\nAJ5UxdfPIW/rz6YRF8QqB4PogmOTUPcPgYjgcjeOeippZNhYFzAgz1lh3Ou3\nfo4H4eVLiOkC0K/YKWV+JS/lV0Zr/WSDS/ilO96WEuM3EfuuC4KvL8SDSO9h\nrjB5QrApn+lGfNStkqQGaUt3/XfEosnjDHOpXI+38XOshT8fUBEiIeEeWp/y\nWVXl9e81G1iVvmWC12TC+Ns4mTKGLgQvLkBrtbMMgOIUX/1MdCKTzXv93DUd\nY5N2h4DxbLW34OCsYlgcdZsDbksateBDzNLRFmRMxvx35PRRKX9w019CkDRk\nqIiRDs0Hdgnl6A+OXO7j1l0NyLpQIJRIrjESNTF8998N3pXcTgccmUGI83IK\nJY60\r\n=ttd1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.12.2-beta.0.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","prepublishOnly":"npm run test && npm run build && npm run test-build","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.8","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.12.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.12.2-beta.0_1601418512002_0.4110856622707304","host":"s3://npm-registry-packages"}},"2.13.0-alpha.0":{"name":"ganache-core","version":"2.13.0-alpha.0","license":"MIT","_id":"ganache-core@2.13.0-alpha.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"b24bba6aa54b88bb99c159842b6fed0219c9fdb7","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.0-alpha.0.tgz","fileCount":50,"integrity":"sha512-NShKudzntofpQS5gpb+QSSPCj4Boixe1IsOUMzwlR1cEAX2/07y+VpZuVwEnbsFQNw0rFcaBrEMdCeFDbfk3sw==","signatures":[{"sig":"MEUCIGBXFlkvEdFlC8Yv41iBNcY4BIjhIh4hnwSndeaCQJ26AiEAi3qMGbX7bv2bRDCTrqOoKSlCkoIzp9gxcEuwKdBB9aI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1653034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdfDYCRA9TVsSAnZWagAAbA8P/jkcyJQT6AcQzggjz5cX\nvcrSH1oAVmBRqY37WXLHGdraI5RhcsjRjI/LeX6qtP+8cMjiL3G0kN7aKMBX\nrzrSufbWyO+7A0e7bP8JsXYrSfPYoWSHWTXkS/BA8BwmLGZn0H1MT3Q5cl3w\nrs9EUSt6OFBw04ha2V2sm5I0hds0jo3Cz44TSv+j03MdvhPxWOv2EuYU+3jK\nfSCtsEuoMAaar8eu6C3ZNcnc8oXJrE8jswBLp+h+agVwGkG5G64usubxVGv2\necFerpNkxKHD1iH6hPVQWp5uakrd10pWtlmLgvWrkhMe4h0UQjNaEBxI0K4J\nFFrxOguhI6E0CJIT4owTgyX19SwovOhX3hy0vScUAAlbpiosWwKUlcU+hnL7\n1fL7yfb2LWuvDWo4eELygBYetM3zpEE8gvao0AQsjMdPHD61Ckn41Rg3L7AV\nsZC0rwqV0MHAKq98bMg8Kz8ViSnMc5rhd57BQBvJOYAjjXwvPOU+k5A2xpxO\niX6psehoare7gzkhWFElXbB7x5sKECAFlk9gR03orD+Vj0AQIbzBRPztFVJm\nTSDfEXSn6GWRsKusml4AWUU/MMYUsUNV+QU+ae8iS37vrsWXvYaX8o/dZisi\ncVOsfyTphFpwxSCbTydbd8F/WVeYrAn8IwO5XMgqy0SNOintyd2gTT/pFJYL\nOfnP\r\n=9nnb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"90d5b1ddbed0b3a18c1ddb1772e573b51ccfbd84","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.8","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.0-alpha.0_1601564887378_0.11639702710767952","host":"s3://npm-registry-packages"}},"2.13.0-alpha.1":{"name":"ganache-core","version":"2.13.0-alpha.1","license":"MIT","_id":"ganache-core@2.13.0-alpha.1","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"63a6c9ba799ed371721105cc067b841721fcea54","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.0-alpha.1.tgz","fileCount":50,"integrity":"sha512-HNmuEcS6CocRtFN9FG4N37vrMK7KOiJX0DxOd38czsVzpDoqyXKKV7yiUrckPBBtjYeLhwYy0jbfznqgVvY3PA==","signatures":[{"sig":"MEQCIGoDTA0/4utKHdTaEKr4T+lktM00TJUTFBLSbigLxEUqAiBnq9cH4bU/Ja/09Z8U0FFA8ykjHO6ZJSCxLH91JUt8Cw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1975828,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdgcrCRA9TVsSAnZWagAAp+EP/1zSeIaArzLQ2IHD0zks\nZYbYkgrzu1ntNspyQ/WhGhGidter2JpQQXY6m1ujC91Vi9suJotItQ2yciwf\n6OKuxkiNhjbV9FSMwm5O+fUIvrrQHXC8LQndl4hBkBFLZs8tRLv5MS4scm8P\nqCv39mDGbxJCyQTKo7wSV2K27kIFnS1WJ3TwAEfMWhwhxm9vVx1DfYRZ8dxr\noJTXFILU9xEzsSWUYkMGZlR/SoxTUJyFaeGfpP+XJxQNpHrJ1LSFJCgDayUB\nkZTNj/yFsLA9oafc9/INmm+KRSTjVbzgk0WrtDDlmqKC4zV5MalHICWF/3V9\nw6qG8So3thxVnLcoorC2Y0gXS4bfiVsU5GNqbxQoCmXVz4Pe4q9unGy++3o4\nsI14KiIXlDWd7ncUDeLl61gB4v6EyFuAI+wTS84XmNcqJqX6Bu6wP9GXPscy\nNNk5Un0q0UupJ0t/rWB89kJjpuVNqXlsZYsLPkVkZy8rdHMDiyc7vL94vKoK\nUw3nZ1j4MCgEka9N2wAxqF4n8muz+4GLbmcUwSsqPOHWRm2/Ak+5XUHqkmeh\nEGKLMRbo35FK8iJap0AFlcLbn45LPAPODrZANy/x6rlJfPEDkzgcp60DdJzj\n7/4bWW2R7IrFgKUkDHvbktGeZXqPlqJTRAcWqLK5a4SMsqNyV3ODctBmYSGS\nDexA\r\n=ED/q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"88c5afa223caddcfafde96306e4a1f0d72735f45","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm prune --production && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.0-rc.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.0-alpha.1_1601570602817_0.26795905624083916","host":"s3://npm-registry-packages"}},"2.13.0-alpha.2":{"name":"ganache-core","version":"2.13.0-alpha.2","license":"MIT","_id":"ganache-core@2.13.0-alpha.2","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"5c6018d80659c1081214348d0fa44d3fbef5e852","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.0-alpha.2.tgz","fileCount":50,"integrity":"sha512-89Meia6SbRNSB/U7xcR4QiAdezz5kcXR6t8gBU2vierwCUezZ0WcvfnXOUud9dKB7FygVimCBvJGSa2HQKq47w==","signatures":[{"sig":"MEQCIAqQc4TygdnCnMj3LaXeS+W0ePr1MNWY3HU9rwFLA/WyAiA+ROGix0GXSWZTM3SQBKAb21Cs6QUsmLE/fdKe+snIUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1940335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdhqpCRA9TVsSAnZWagAABcYP/29Us4Ui4mShyQ3LXJkr\nmI9kcqddmfYT7UzPNarnbYezuXu9KKlEJtghbjYAhTFxZrdqicaSzDxSlrku\nvhQWihp1/+IjMcNAFfgKmJuVrSttCz4hmGf/oOxjNARorSBS51b+WOQ3yJQH\nUDWkySpbvaQCanWSsCDRLhH5zd8y4K+7V1jh4n8UU9zLsd9/uwKinLBReTtU\n2WDIyzSlWgrKAsHNU0hW8WLG/Pnjq++wT2bX0SAAuKW3AfY3Wtbwy5SziXih\n2uCOhuP7TpgCt+Ty8e89r8dUgCNDIpk5nU2j6ewXRjpc5gK6AyK+rW41BH1x\nyYINRZIh5E8ftHlw+7K8e2kEtemDb4+5VOFlOPiTCUv+MxeSK85YI7ll81du\n/3oNBRtPZ/BKqpC4vSOrjHgjk5KmdnvboNYajVkHKmHzK22KVZAU5hi8n9RT\ncH5mEEcA/Mu8dleoBLxM0nLfhkhbsHEVZy4IGSWz8m0MRKiYM1uplz8dECfz\nA+xSQk+90GC6fiykiXEs8tJVSjoYbOJbZOI7NaehyzT+QwOuLusfvYtES6c7\nY4hQ/LT0uQ5JZ1/TkTDwAhoJjb6zSd8TLHFJzsj97FVdRw/+sLBmVPoHoEU4\nofrwCxu2cbtxQOm+daQqy7OYILpwMaKCGM9AtfH48nNm+2+4mwEPT2Afpnxq\nInWE\r\n=Ny5O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"96835a943923d89adcd8aeea1fe4b565cfe1415a","scripts":{"test":"npm run _lint && npm run _mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.0-rc.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.0-alpha.2_1601575592805_0.8680296241867518","host":"s3://npm-registry-packages"}},"2.13.0-beta.0":{"name":"ganache-core","version":"2.13.0-beta.0","license":"MIT","_id":"ganache-core@2.13.0-beta.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"23e69aaf90974cbb77380ec14902fa18ad176d70","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.0-beta.0.tgz","fileCount":51,"integrity":"sha512-tG8LTzt/0ficDyoUNVdn9GiWoFGFVxuzo7aoIKXhu9DarVFfVozPt2jOWFRNzgw8CWhWWw1P5Aq1jK3RT7xAmw==","signatures":[{"sig":"MEQCICmw5OKswsHvZMW8b8NjayIJqsZ/zSAtaeQz6MIkuN9jAiAVKFsrJQWfvnTO644AuPrHyCcOoAmxbX0EEz2NR+VwNw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2063993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffNI0CRA9TVsSAnZWagAARSYP/27vukhREUw5LfavuVpI\nAMxN2bOvtutF3zUeH+6Vi+vSKBe2WgB/oC54ezM9hOhmtHgaqzuyNvkEELf0\nBF2KaAqnUkFHa9y5dbOD3HAbk98CB6CiAnjX3dPo/X9QHQRY5FxZxVrG8hJZ\nY+9oAY3SBpxkqfCG3ao1TmilumFhi75Lshhl7Yvrb53C2EvHcc1Zg4e62w+0\nU1TnqNxzvNB9O32pOx44cGPVqyP+zGLarXdjmqmG6HIZbfykvAbha409H8ZD\nvmnBLuf/cSH3m2slFn7LSUCuHpo5PxZsFruucBDiKkYXR1SGXsOyO0A8vE/B\nHHAlYJ8DCThy9LguHvZGBEKoA/zpos10Kmql0tJPsu0qKOxb120HncTFHtSK\n6cbzFyX/C1wDFluMYqyIBHSHuny/il8jPnZ2phYmkRWuROGInkR6ihPFkq5l\neSGzTbY7uRrazs6sQTwiKNOlazmcInoYz/6qoaXjqQIn6dhzkgjzwf5Q75Mk\n67DheeWwTlPkX7tV7dtY0IeMM78hz976Xz0/roxXCsdj656C+/4cbmFPsNKV\nG/djKFkD9G6dfnjO7PdAzhjlTB/zTR8KM19qR53niBXU2EjCazFA366iVcDb\ns3Ddvig38UFnG8SqxMtmiGkvZgyt5Q06oEfMgqSQD8fjIcMihiN/bL6Amyrb\nhEAK\r\n=AfQj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"f07363ac2d4ee5deae6046a83c9b2d8a455a628e","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postinstall":"patch-package","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.0-rc.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.0-beta.0_1602015795172_0.31854630460119027","host":"s3://npm-registry-packages"}},"2.13.0-beta.1":{"name":"ganache-core","version":"2.13.0-beta.1","license":"MIT","_id":"ganache-core@2.13.0-beta.1","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"56244ed13b7aa5d5ed78e5ce47e573deb4e7a68c","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.0-beta.1.tgz","fileCount":174,"integrity":"sha512-/0Z6nueddbDUmsvNHueeylWgedYjW6sHjgeaIh8GTZKLX1aIrcVkOi5Hne6JR3zyQp1XectbrWB2l6aiKT/bSQ==","signatures":[{"sig":"MEYCIQD9cxJZ6iKA4ZLuL/hIlZQdMySZKykBapFFVLVZkEvmAQIhAJVy7e5kmFalnV91n9HZLEBALCpzefhQ8GM3l2SPnDs5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3629070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffjRyCRA9TVsSAnZWagAAOusP/jaCL7tA6EAgGbueOS8s\nMaZEdf4xqhgJ1HGDlO2iPmtmx8aNTwoYs62N2voPMNEUCXR4yInGb7/KTPNZ\nrUoJIe7c91zBzCbEL6W9Dl3RQJ7BP+KYIIuHQ2NN0fqMuHcbbPYY8MgGlJ+f\nbumGAYZ/UzZEO7FXAGfF7JQ7/zGGBM19c4R8kj6q6FsM7e4lHgwSR3CXR7Ep\nmg1u2Q84HMeog/UqomYSS4mF8TU5KyVQLx6iytxKbOdk+BPVCqsHEsD13FIk\nFyS1TBLuCPiQxVZhfTB8RfbgMwozHHiMmRm43CR0gSLBuz67wvcQ0Zv41WSa\nhVC4DkLtuOIx6+sOTyjXNZMNKS7rprfi1rraz1L5y1MeitBVWnx0nDnDN4H3\nUJNobSD+9+GcJTK9tOExcT61ku4QwV9YINekrTJRkfKUFpz8N7+FzKPxMgDp\nehUhDz3ALxfVg+mtuv70Li9uvKM564kSXRPsfZ+403hCJKgpLLHeeUaPxFiS\nU0ULmYcWLnhG9WY009IKw+noFG7T+tYM5ue0hpd8R83q5jyAxuprPCb9z+CL\nYoPh+kk8s1JdLSbL68WUrs1sFhbp8fDqjljsauRLCov7AIGYeZ+TMTFtfe3m\n282pxy8SXXjmHIvvZiDyKpG09LCP4M4ZERZOfgsNVkjSYWxNrwwoPe89/nmV\n8m8u\r\n=18TD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"d71047c3da4bc7d9ea69c2b0d9f67122559be318","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.0-rc.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.14","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.0-beta.1_1602106482304_0.26473538280623443","host":"s3://npm-registry-packages"}},"2.13.0-rc.0":{"name":"ganache-core","version":"2.13.0-rc.0","license":"MIT","_id":"ganache-core@2.13.0-rc.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"090f8e8faea6731f7beedcb376e84b16b46bcd1c","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.0-rc.0.tgz","fileCount":174,"integrity":"sha512-rBD60y77jcEOA7BFFmEdp5rO9vFvbwxtUs/4y3zKqHRXxip2NULfaBJyoN6nyYESX+s4sc3T602/iKwZRZ1cWQ==","signatures":[{"sig":"MEYCIQCqHnK5B25/skEz0i6I++J80KnDqxbHxvqQDhkF2CRTxwIhAK+Is0pgdILTOck2a1b2JRsOb5r0uFoAdTzRCfiMsHF2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3626325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgM8kCRA9TVsSAnZWagAAQ7sP/0c9RuA3ktWccUzN2kTA\n1Drma7Ues2heXDnBg9C1CxuuICdKq0Z2h3cKXMR6/ADYohKufamTnoD7x0qC\nLAvXYzmeG4dIeFNLmXFTn184wkgPUmL1UboZ/LbQiOZqk05XlecBU37OaHzI\n4koiJB5K4SGdRFFhnL23aJrYb+KUDrQaITG8bfB7/XMv5x4WLQDJFYA1xuDa\nKIFGqi0poj4/0mJHxQ5O3tkFUPJspu0IBihbbUfgiNTeyRX4u2C+bMswNDVq\ngaQlXs4IMrRyZ07YSAI5F/xCiUnRDXcZNZaswC5MWls0/92tc18VQhPA5fEe\nwc13cnAV97zBBewIXmcCd+N+q/yOwOWhfm7zNK8X0CcpPw0WQ84eQAOQ3cxB\nueVjygR9hlgohCBHMMvij2yrnxnjHIkCzehy3fb2RtH0ld8nNY5iBPE2ozZt\nQA1TXyOChsPC5j7jIDUZFiqxsepBVk4i1BJzyE3xwJH9PJKu9MI/SP1ywHka\nt7ZhFkwrs+RU3Ea7WthzAt77+uxhta1DlkNGv/FjGmHdgIVQGJjJ0Sxoob9q\nPGVSPEYwZwmak1bBEzGNEwQ7AimXqueRpnaONWZWTarfX2m1M0fGJm1N9ApP\nXZGwgQF9Cyv4XVVUnKQSl8JrkCboirrwghRgxJuD73htA5BaxgME8y80+Mzy\nEvdB\r\n=axFp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"a2168679160b275a13a1d01d8734c89dc1948cfd","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.0-rc.3","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.0-rc.0_1602277156096_0.3702241182890491","host":"s3://npm-registry-packages"}},"2.13.0":{"name":"ganache-core","version":"2.13.0","license":"MIT","_id":"ganache-core@2.13.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"e211d995eb806a1cd792096a989cf624417f0f7c","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.0.tgz","fileCount":174,"integrity":"sha512-yTSsesDBwPh+34ZN2w5SZoPNVbR0Gn75InvQc2D1zUdy9prED6R2sVbefSyiXFR/uwZK9NrIVS1+HcEtgQVb9Q==","signatures":[{"sig":"MEUCIB+z7UI4CfOeRetAHqAmiR7rXcfAE2V4G55hc1D4BoN8AiEAohmBkQpYKNlC02XrwMjZjrj/RTKYb8xTxVUUmOVNJZY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3626305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgN3WCRA9TVsSAnZWagAAAfYQAJv90B+GmzqFihPGt0rH\ngRQHixHehTyuSej8pA4sogSvh/0wyVkJELIVw0mYQemmpxMr40btf9aFgn9v\nuVJv1Fk7NiFD+NSv4JZDS6YRMoK4o79GWgvB4oCMT9AMSQLbzAGyHzUe01BZ\nzAuGjjzp8cFdXXQalmUrBzV64JrG6cDPujXeQWw3+PIjWnISo7tMY3O0kT1o\nJpWoE3NgPvJjEuSw33zeAEl1tWMbogZl2euNaFPcyvBODLFCnIgM+ATBfCOE\naOvb92NMw0lND3E6TozOClVckkWOm7cIo0thgPn5f7aLJEQD7G4a7+hyTtdw\nI+nlXJyPtnshH+RPfWTzlRcxeZzG0oVK699sJ74RifFJAgrp7TYa/a2Yq4wj\nzQbUWk1dphXmTFfW+L723Y0jsgipYIaEtMOkNaxVu3B1tbVwzRNyvw2hRzqb\nliMy3I2qaJirCga7KWcr07zkrnkLbrYUwWu5ODJH54XXj+fiSODVZnrHDp5+\nHRGYOLFvD7HSg4AZh4o6bAlCB8U/fcCqmYQxzVfiYlAM8hxbjJJLqdYB4zzU\n4XsE885X/xJB/huPFK/ZE9qN0Iuk/PTpfPiLMQo0t5s1qK2cMa4uMKdb74XO\n7/DUL676yuwgcWUqnBPNouR9i27koyomwen6qSjsI+1/zTlmX21xKzZinC4U\nfpt1\r\n=SM8T\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"61381e20d192622e4c5f23bade2e6868bd44a9cf","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.0-rc.3","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.0_1602280917834_0.30509098751140873","host":"s3://npm-registry-packages"}},"2.13.1-alpha.0":{"name":"ganache-core","version":"2.13.1-alpha.0","license":"MIT","_id":"ganache-core@2.13.1-alpha.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"f9bea5863a2b88205c16399e26d2725b99243c11","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.1-alpha.0.tgz","fileCount":11964,"integrity":"sha512-plPz5sSOAR+GwZ+5wV77pgP5m3QqRwk66H6EFhC93rTw7PGkYLFZ4frrOkkh6JO+KJp0haK8akmKuv1kUbk9MA==","signatures":[{"sig":"MEUCIGbEmsh4huRQ+YCCOl0KrpF2d5WGicKsBzya/+QYpv2nAiEAlOxVPd3NwtqaTJaU3bPazbxvIvPdeSYeLkxJK+0fD28=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48350151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjckGCRA9TVsSAnZWagAA/SUP/iQJTowszuJ6moGF9qUp\ny4xVKTuGSKBGe+w5HrBNLn6UkocS4IiCZhKqUurRlaBCcB542SJkgj8NGXlj\nFvOAtXUP6i62nar1L8BOeHxYCEmm21cNZRbB69kqaFUujx3H6CRNR7UWTTj9\nWGJui/gKqKgmLUG0agBY/q2Xu2MpR/XpoYzD0nP5MVRRybnprASmkDhX93xt\nW7fxWdTVH0FHNKDp91VqJypz31Kua+/G809ThIW5PInJIdm6RORMe0h0amT0\nWRVBhOKkCYnTbd8KPXfrmtFovHHAaxBTTMvMfSmR7/PDs7eBGhmPIihrdwFr\nLmuGRsyBRw6O6iPjkC0ZvtmImxfdPl1yQ0KdwwSP+7pHvPaoEfJ+TtF7ygsw\nrkSL9DCYUsWqrNw7GleQPBP4haZb6zgVwWzIjayP+pH6tSTnIIYj+iJut4Ld\nvoCb6HhUEwua/l/TQDg6rxDm/V/ZwKyij1TBjK/DLFJQvPLJ57aaiqvgTPfB\nWVEFeyWQncPyymdoCl9JRX82hbFgv/ZRYPI0uS3cXxdnc0Rafm7HSIwSs9sD\nRc4yCiwTsR14+YJ3BGGg/lXXyKDrB5vpoD1lCcwknBiEFcGvpANFcm6ctfmi\nXK6suB5tt6NkwsaLooIq/7Q7ZZWLn7ZZVC/8JmPNY9TNss3Zd4Q3Cib/vE6X\n0elx\r\n=fCyM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"71a6115a1e201542f4edcca941ca93e9c7e7efef","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.1","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak","web3-provider-engine"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.1-alpha.0_1603127557850_0.31859756423789354","host":"s3://npm-registry-packages"}},"2.13.1-alpha.1":{"name":"ganache-core","version":"2.13.1-alpha.1","license":"MIT","_id":"ganache-core@2.13.1-alpha.1","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"322f6ef5ac77a49d412220ba81cee7981163430b","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.1-alpha.1.tgz","fileCount":11964,"integrity":"sha512-h4bBFmbY4avsPKlsN55dJBgPAIsXNZpKJIo3DAvH1sWoLL7edY5FmNnxB3RzuuZLWXNPExOyrKUBVx80xNsKuQ==","signatures":[{"sig":"MEYCIQCzh47p7k7E7C4KPmqa9sKCmJd8VpTzob8/gfHDVki3pQIhAMKJFMwL9g/oC26xlM8Ra+M7yjJp56IDOcRu5J0adsTu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48355936,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjc2WCRA9TVsSAnZWagAAOfQP/023YvCvPCCvOTN3Nl7H\n0AgmHW91w1uJnV7LM+PoFJiwv+rkg0GLahj8XOYW8RU1YoD9ywKjqPoZK4dr\nGcVNBEIMJEJJBOnpuj2Z7+VEtfh83yu/NuYpvIKG6jtITXMXkFVCiCYGspKI\nlhGmJGUeP4wm96f7chN9B74LdP6UhNyUzYra5DgdAc9Ot6x3YpsN99lUbJ+/\n9d3GE8uwkNoNWBrKKDeaqK/34yP56cLzBcX3tdsyxa0Ct8cuBSbDQXkcLFNO\n/3QJrpLtZVV0SHIyuIPHke7mrETMNL0umdGU0HMTPc4J4+mM+RTY6KfZq1/5\nGnkzX07bpw/uuaHcMVvCgh+YWPpHmMS0VLR/SBOC4WWoRK+4JmX2wX7dnjOi\nT1acvm9OlMXVaLAofia2r7CQGflktbx0HArZDGr4Cm8DA3cIBrU9+zcESra8\nSi+OlGr9OIxd2a4ZNmfD6G4IMltqTLEekiHlFuO+HVzMhuqF7URI6d9LkWj0\nVv8IC2aLu3FSzcf2h2vz313wCJSqNMzYxR3YLgiBOEjUrk/LoDU4T94gnuUv\n64jPGtrr8J3lLc0rLl05NM+uBzNYpQHSWha/ZPHnpFyQy9SLSjzc6Yuez/XF\nD1qCbSNxHeHuBpEeuSO+0jG8DLgz5CANPmVhptK0Kah8fV3GGsX5Blvz1CBg\noxxb\r\n=Gp8/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"cdbd8211a4cf5b7d9d61371c72d4033f113f390c","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.1","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","request":"*","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak","web3-provider-engine","async","clone","ethereumjs-common","lodash","request"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.1-alpha.1_1603128725909_0.29012898649121044","host":"s3://npm-registry-packages"}},"2.13.1-alpha.2":{"name":"ganache-core","version":"2.13.1-alpha.2","license":"MIT","_id":"ganache-core@2.13.1-alpha.2","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"ebafb517b2d23ac89701b5f0865c9662dbbe5819","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.1-alpha.2.tgz","fileCount":847,"integrity":"sha512-lO9rlcjDdmBjp2wAZvgg4PzQJejIEJhS4XZiug3lAUbxWZv98nR2/99GziyaeM6Uvd8NJMHd4/XUxm7gEs1kdw==","signatures":[{"sig":"MEQCIHNWBUIMlat2Uy4gbj56Lk5d539ycsltpmbyANZk6sPvAiBexWaU151Tm0r6CAzgMCmwTvdRp486HmrjQJAEzXn8ug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8615051,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjdt7CRA9TVsSAnZWagAAljMP/0dKex116ep+CI4zt7iS\nIEVejHzg/ULHy262CAJHCmsOfDdupXyJxDtg0HwfRtwM4zFxtJuM0SeFFc5I\ncWiPyRbSrpPFsWObr8LrTC5Rn2PYa91XzpMhebbQZ++saGi9ZXeAGb/uDsqL\n8F7qqAVHex9g1LIeO5uHFJqK0P6DbJeB73aHqYYcDj1HV6Y8o8C5CSzQTdCC\nZ+eVtIksTmA6t1abYrrvXmvPo3bTVjz5jE+jmXkkJoJjfPowrImmr3uXpF7M\nC2sBG7fTwIaquYokHmaB81TwdD6fsUZURk7a/hlNxwV74MHshIoHY5KG0sfr\nXggHvFcy6lHPATRW9sO5s6i8WUuJjhyaF7nujydybc+kZef6rys7Kbtcyo6P\ncvCrVrqZ7KcyVeBe4sNEYV4OFSazt5i2ApA6aQQiGQJn1u/UAFqJMIyeqB9/\nSjSYkKXn71HHKIhPP89Fu3E8QWEGaZDmaf4Qpk7n6D5qGa4eTsZyxFm8souq\n2Gca2Tg9YpWkl3jV9iacw1lbtOu1dqmq4PkdRHNpqnUEgnln3weU9Q1vZYG5\nmIux2miuSw2wOjyHRMUPg6wpL3G82MAvYOmaAuVSwWkliLKsaIptgMTnbnn5\ni2ehkpGbpERv3856RQodQKdjaDcee/6J0UtGewGsXzX6+0OhzBvmo3GvEqSa\nmoiF\r\n=Cesp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"89962434e3c0f134037876c5dd66e4767ae3f0d7","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.1","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"github:ethereumjs/ethereumjs-abi#1ce6a1d64235fabe2aaf827fd606def55693508f","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak","ethereumjs-abi","ethereumjs-util"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.1-alpha.2_1603132283072_0.5240861725399024","host":"s3://npm-registry-packages"}},"2.13.1-alpha.4":{"name":"ganache-core","version":"2.13.1-alpha.4","license":"MIT","_id":"ganache-core@2.13.1-alpha.4","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"7c7561f5419d9a894eeb905c271db0441d46fd5a","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.1-alpha.4.tgz","fileCount":11931,"integrity":"sha512-PeAy+bxB13cgwXG3DOWV1m66iLvu8SBNSL6A9OLpGMCDvNA2XsyFiXxl60avj+5+Byq9cdHultuAHl1PT6xozQ==","signatures":[{"sig":"MEUCICI84zWoRa4DCgN9TP9UJ4Rpkd64ITkZjPH6amQfHAQcAiEA3+HFr8+NOXZvufygGc6rdeg/px5W8gYZM/RwONsqpBw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48222666,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjfiBCRA9TVsSAnZWagAAirUP/itKkMxRWlS16a8Y4Jc6\nbYGXJlsaIuFxnl7N6pk0XZnzssNwKiXDPHbjt1XRcyaE+0ljnveOBFYfMlV4\nzQluVCm4AfS/utqrOU91tkwCElfWLaG9yq4kBQMaxQ3mfMtNFrV6mRYGT+wq\n1u6THcp35AqMHL7dvj0dL/u48I8Seyzy46FK4TD4/2/+U/OO892Lc7J3SdRX\n1bgFSRqgsr8USabqYy0CyH3eoTBnKOYbbLLL/tWG/ofVgoubpg/jtXYNq7dX\nHoP8pIRbOMcY6Yw1sJYUj0cLRtDr+7464b/aj+l9XX41ac5mkKzCw4ISrFzd\n5SwQm4hQAXJyGazQa/ObE6ksM6sKkVoZR2440l2A8ktjhxx6STe26dYLfVjM\n1hv31kyjGcm9VKYr4O+AHZoUAt2YKAcYzVHYtRdo8KvhQsmDzfnaaXjxPhQZ\nZ8MSky7jI2E3qnMV6LcnxsU8/X0VstLKHzVySCdc9GvRte5vfT8SKC2GiSIr\n6+kelfu8suPIyl1djnisf0XpaZnWcJjPxtwCwCultWUurM3IdudU6QWtEtby\n1ToaJAJ9amtvmJUsSQLHmlOql7VtUyfA15WM9Bzs4Rj+w0j/YTCWzI6TCux3\ngtQBeGjijBr8KKXei/OMfgsQYbf6Bv03EKT286FRFRWsjsfup82S0+FAbve1\njYpv\r\n=4PV/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"2adb4baeb09def415147e9a14a02288a3c9440b1","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package --exclude 'nothing'","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.1","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","request":"*","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"^2.0.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.8","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak","web3-provider-engine","async","clone","ethereumjs-abi","ethereumjs-common","ethereumjs-util","lodash","request"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.1-alpha.4_1603139712290_0.12117413814789213","host":"s3://npm-registry-packages"}},"2.13.1-beta.0":{"name":"ganache-core","version":"2.13.1-beta.0","license":"MIT","_id":"ganache-core@2.13.1-beta.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"b437a31abda0ebf090320a3650fd8b72a44ba9c3","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.1-beta.0.tgz","fileCount":11931,"integrity":"sha512-q2ynR1rLuwfiIMiZIWU1WIZyJlEBNQeA3kXd5Vj+ahm4Gx+8q9iqzsn5kNCtbovt/TJdxQS11M7DVaudxHQigQ==","signatures":[{"sig":"MEQCIC/efF+wTVhNky28QSohgpPuwXWDphxZPKlrIPW40Sj8AiBq4EebDICrJvx2UyNBaYMQrm0mgGGBC/JEuiidChzbBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48222752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjf1lCRA9TVsSAnZWagAA0ogP/12R/a2d+WZVs//SIuGi\nDhNxITQKgJbecnmoHqTKCnF/NzYq2dAKVGNosLhAUgz/DfE0YwnBSCR12ovb\nap4hCayRNgDMYyw6YIUMOwdgooJDh/gVgj3uFp6o/HpWyvLg/OuxVs/YfW0c\ncFGDBFu4MlP+ssXE5HcNZElt6RJbPUfW1GuC0Wdf+kvMccYPb4IEgmj41LAX\n+ytrmNo+Rc6QZWJIyIcSF6/vaZjC8eqTYIDFVOiYdOpBOjc4KkLa2lpB4JD1\nsYoDNIF33DtLV8OKuWFaWjaELZJ9oDtn3tWIOhR7JhffrerD7ynIM35UDK5n\nPrZfzK7eCkjEirT9TIhxGOSJa2wSLtUgn7yn4OISlSXOxlG7fwqY+hf41Ay6\n7354nDeJG8TqR5bseK0JJQlhnyh9S4vJdOVW84njiIPgTPOMDI1z8Rej0LHW\nyl9c+BeveXwpQ72uIIDwFZ0otx3zaeekiceM7dvuA8sj+WXhx+77sMBzqnWQ\n9W9D9oiPzRO4kSgCJcklpHLHB/7nWhq0e9C3wdT3TmPbfJcBYWI0WgQ7Q39r\nn/OizzVYSXTEuag7yuSr50fwGU1DAVd1ig/vwxvVYBMPtbbj0/oOUYONQpTL\nO6PBaNNfsiltmlfpCZBOx60YuQvS2J4Z67PKc05J3cwZbqWZCQPvWBlOBoWF\ncrg8\r\n=7h4e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"gitHead":"0dc2e759f91276487b282de5459cfaa21e6f4f60","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package --exclude 'nothing'","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.0.1","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","request":"*","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"^2.0.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.8","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak","web3-provider-engine","async","clone","ethereumjs-abi","ethereumjs-common","ethereumjs-util","lodash","request"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.1-beta.0_1603140964270_0.43749822520970794","host":"s3://npm-registry-packages"}},"2.13.1-beta.1":{"name":"ganache-core","version":"2.13.1-beta.1","license":"MIT","_id":"ganache-core@2.13.1-beta.1","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"cebe7b79743044f2bb49701245731809a3569b0d","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.1-beta.1.tgz","fileCount":175,"integrity":"sha512-JyOybKPbzJ3uTkMn88MWKQDjnsgetCc99Fw+czW3Gbwis9cKDWXs1AolIgK6rDh7PIVNk5Au+iBmzvF049vwlw==","signatures":[{"sig":"MEQCIC30NpoWG+cc58TbrEDJK5aVcdPYKtS+P8jZtZxLvlYBAiA2uiUYCkkMpKo+/7G4dNH1nx3+zQaaxjgfd4lejEYqQw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3626116,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflu0NCRA9TVsSAnZWagAAgOEQAJgq+Rwrnu4lPSnboooq\nbZbHqtNd2fY5FmqfJKwZeasbzaZCErNcy8bLPSJyZ3yiWxmXFmGbhLoplaT4\n2bDPOa/51DyZt1exjwuG24QgkEEtVZx3OzzV+6JGL8OOS6jOh3x/TfIJ71qb\nff5kA4saYj4JvaZjddAO/m3upPgbvN0qLICi/NkL8U8PYZ/1qljxE74CA3kb\nKDznwBiKutdbwIkrPmNvIjU/K/fvroV4gDY7iRoEUHBkcU/B1O7rIHcC9Uv7\nMaaJiB26uuvn4dfoZDjzkMmf6CyAQzaa29tUCrPAnaba6JZUv3IH5AMPze6+\nlhVNMGBWI3bu/Oeac58rQytLz+ZE4f948OYsVJ2Sf/91zUnoqXTRA0q4EdAU\nbRRwPL4VGEM4gRCFV8PQs7tGQZP4tzJbKzQaFwnPlfGzgzxHm2tKOQia1Exh\nuk500XsbyNhmYLe64ZTWf25y20QMs8lL4hws04aS/Q/OgIE7M9eQBqPZ5v1N\nJ2ou11qyuVSPtYQykyzdIstdjlIn6k1vdoQ2rP+Jd0D+2lc64KJT7uC0hPv+\nv6F8gnI5M6/1xrvitlNVywurbEoN3sSeSD4u/SfR2l6yx3YnbBUZCeCANOED\nwnDND48VVqMa4kkBebQ8Spv7XGwDJtqQa+ijCH1AjwaCELC8dnioDVRpqDDy\nVozV\r\n=eqkI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.13.1-beta.1.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#implemented-methods) | [Custom Methods](#custom-methods) | [Unsupported Methods](#unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v8.9.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"port\"`: `number` Port number to listen on when running as a server.\n* `\"seed\"`: Use arbitrary data to generate the HD wallet mnemonic to be used.\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in ether.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n- `\"forkCacheSize\"`: `number` - The maximum size, in bytes, of the in-memory cache for queries on a chain fork. Defaults to `1_073_741_824` bytes (1 gigabyte). You can set this to `0` to disable caching (not recommended), or to `-1` for unlimited (will be limited by your node/browser process).\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"_chainId\"`: **(temporary option until v3)** Specify the chain's chainId. For legacy reasons, this does NOT affect the `eth_chainId` RPC response! Defaults to `1`\n* `\"_chainIdRpc\"`: **(temporary option until v3)** Specify the `eth_chainId` RPC response value. For legacy reasons, this does NOT affect the chain's `chainid`! Defaults to `1337`\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one. Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`(integer). Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n## Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n* `evm_unlockUnknownAccount` : Unlocks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be unlocked using this method; use `personal_lockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_unlockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_lockUnknownAccount` : Locks any unknown account. Accounts known to the `personal` namespace and accounts\nreturned by `eth_accounts` cannot be locked using this method; use `personal_unlockAccount` instead.\n  ```bash\n  # Ex: account: \"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_lockUnknownAccount\",\"params\":[\"0x742d35Cc6634C0532925a3b844Bc454e4438f44e\"]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n\n## Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package --exclude 'nothing'","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.8","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"^2.0.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.8","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.1-beta.1_1603726604900_0.983895101617358","host":"s3://npm-registry-packages"}},"2.13.1":{"name":"ganache-core","version":"2.13.1","license":"MIT","_id":"ganache-core@2.13.1","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"bf60399a2dd084e1090db91cbbc7ed3885dc01e4","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.1.tgz","fileCount":175,"integrity":"sha512-Ewg+kNcDqXtOohe7jCcP+ZUv9EMzOx2MoqOYYP3BCfxrDh3KjBXXaKK+Let7li0TghAs9lxmBgevZku35j5YzA==","signatures":[{"sig":"MEQCIDPsaIMqsQARxHWbC/DVh3EqFTdJHT119C0kC8yk9h6mAiALGpuo1A5pr/3aH5eGmXf/mW4r1+TqE4Y0HA0RBT58WQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3626086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflvoYCRA9TVsSAnZWagAA3QgP/2yC7c2qtC01wxkwb+iy\nMl270TAxGHgvExeJ4SXA35HgCVIGoUWdjlZc2Tokv9OSZatNGahGh9DdssLQ\nnvCTIcj/EfACwnAQVT01npeCvNZECWlrGYBOIi4capFqyh3c3/4V/s2ogtTC\n6WT6fo12xBmRfQbsS6IvZcAb0N5NM7ZiHry/VC///m+lK7cgdora3VGVgJBG\noRqwGJCOX17wam4fb6+P/Sx+LxLA6GcbgA7F1vrGeSy86pSvBf09YpDM14kZ\nadQpd4R9/YftUsXW//aejYhkQQ6VuvappaSRz7hWKomtqmHF38EPWKJeeaWg\nWR/59Y5g0PJsLkD0WUhCvNm68H4f/YQxdL5ZypiXg5eRnRYQdQCSt3j+Eubp\nydu0zxS0OxE0bjpQgaTnqw53UQdLERrl8m/JFHaB4AfJJBxpWZ25/c91Gedw\n66efZfYjpHgQh0cL1olTHdTAz112HHgI4movUuZuIp2YEFQbUmVloS2xNRZJ\nMhGDayapJ+dfPVzt3PUqBWlLdh/3U2ARXiGoUrAwr+FmdZcu1Ao7i+TOjOzm\nwnmNBISxdm2JwVIKwz4eUtNhbnYS0+PcemQQUSkTB5K9DekPr/nQp/rne86y\ndb5E9HSZYOAWvy2mg/iwm9NQluS/qHuoYuCi4g9qHDS+zMC/A+zaFGTdbQRK\nHqy8\r\n=azWK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","_from":"file:ganache-core-2.13.1.tgz","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package --exclude 'nothing'","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"_resolved":"","_integrity":"","deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.8","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"14.13.1","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"^2.0.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.8","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.1_1603729944274_0.2791011740580054","host":"s3://npm-registry-packages"}},"2.12.0-tezos.0":{"name":"ganache-core","version":"2.12.0-tezos.0","license":"MIT","_id":"ganache-core@2.12.0-tezos.0","maintainers":[{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"fainashalts","email":"fainashalts@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"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"d8edd4b17e6df3d2507f5f626d630d9b0858eeb0","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.12.0-tezos.0.tgz","fileCount":53,"integrity":"sha512-jK/ITIUAWtS4lPHMo+9qY5a79ecJo+44uPrIIN9nIgJgIN860GrIcUkGXtEgyOm03pKs+TigFg/IGtmMg2HJ0g==","signatures":[{"sig":"MEQCIAw9QU+X+TWkoDpj/D3Q6XIcD3oy6469SpMzZnY7qOOpAiBi37AoPOscYgxtJtyCnYYUEi++im1ij7yzxHiYl1IBgg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2202988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyTdmCRA9TVsSAnZWagAAhlwP/12+YbjCdQ4esF/EQMOh\nIocbhTpXu2OLHeI2fXZgEUCAATIsCntTFDBz7bnddn+A03r38lnLN37a/qiz\nLmnxypJEx357hJutXuduJZMq80vVU25ajOyMLjHd/NEkerGkg/U7U1uwN7lI\nnWq8UAhDyUytTr1fTIBY3/AVI+ekLeoL+gNKdOesOJ7Es+P1UlgBMqYN9c4H\nAmNPHSuavm/fomZuFeVpDvimfhqYXviRfFVgIU99hQCo0VdTfR5PdOtKAcU4\nfpy9aUQtnGPKRhNaKGY9S1XM1fx1Ft0EXmOBzg8H8vTW60yShEhQlBwW2Ejf\n/GdZVN06mPS0LuNS/WPgvERE3FGD6ZK9oa+cs2v8v7RF1aFlu9TbVwCSjHWx\ndAA0P8uqMiO9luW+XsnwA+xO5fowfh71BqL5SGhZSOf50JJ2vRhJl7eGaObI\nMVU5cHc/g8Ddo1YN3CLjVZ+rIHXLx0lLohZ5Cc3JtSWg2qqrZuP719/9pTqi\niJiMi7QIwVjzhi5dhTqoi1HJEOdjZVi3JuAHp77Ub7WrPRfqLYLWjxG/OgRZ\nsWJj9WZNFUEW40HvyHldXVCIGBqDUpoO4u/eopf5KKRNKpJYhTAJKHEOceLK\nN/X8PIQsk0yNg84E2mb0Hnb0SZHse93B2RmFVrtNq6hORh6LAIccWfQABIXP\nLLhQ\r\n=qw4J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#ethereum-implemented-methods) | [Custom Methods](#ethereum-custom-methods) | [Unsupported Methods](#ethereum-unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v10.7.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n### Ethereum:\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n### Ethereum and Tezos\n\n* `\"flavor\"`: The blockchain technology to simulate. Valid values are `\"ethereum\"` or `\"tezos\"`. Default is `\"ethereum\"`.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"port\"`: `number` Port number to listen on when running as a server. Defaults to port `8545` (ethereum) or `8732` (tezos).\n* `\"seed\"`: `string` Use arbitrary data to generate accounts to be used.\n\n### Ethereum\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in Ether.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.  Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`. Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n### Tezos\n\n * `\"defaultBalance\"`: `number` - The default account balance, specified in Tez.\n\n## Ethereum, Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Ethereum, Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Ethereum, Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=10.7.0"},"gitHead":"a3e4c7e5e281423fd9b1ed23d36f50690d473574","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","build:tezos-image":"docker build -t trufflesuite/flextesa-mini-archive -f ./scripts/docker/Dockerfile ./scripts/docker/","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.8","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.19.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","bs58check":"^2.1.2","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","superagent":"5.2.2","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","libsodium-wrappers":"0.7.6","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","@truffle/contract":"^5.1.0-tezos.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.12.0-tezos.0_1607022438060_0.716002111822448","host":"s3://npm-registry-packages"}},"2.13.2":{"name":"ganache-core","version":"2.13.2","license":"MIT","_id":"ganache-core@2.13.2","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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"27e6fc5417c10e6e76e2e646671869d7665814a3","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz","fileCount":175,"integrity":"sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==","signatures":[{"sig":"MEUCIQDe65ptp3lWuYE72QLI/Td8bYKcApTQGMopjYg2ijq0zwIgJou14suuesRJkfrZiZRwPruQJlJiYAKPhFVf39LzyAc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3331784,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/dXoCRA9TVsSAnZWagAAGjAP/1PYPXM/ik3qRLS0AIrj\nvCG0GDB57Gj+vGmmCg1ZKqCju0pHf/3RPNuvDYr7nzr8FQbkkZuXigzupm64\nxYXDWQsp2UTTPFxUvOGXLfW2hbRwlWldMRGP+V90S79qqlF3+kucakXOb/bE\nEKDW/t1KQMDgKC7gMkSUuhcmzqLadfZNJJpK4dszL7QrUQxepcUszzQFbl42\n4pTOzdM9QbpAsrpXirx3rDLys2OVF26mxhgV7PVQSMoRpiLdYyzaBD9Ymr22\nJtztbKMu4KBQdNFzBfKDlTSYrJTKxsaLi5oHhjwbWTMA/gb+jO13jh3QEkCq\nhOVBhR0QXyPAMzYZ5wsW755q0PML1Scx/xGkxmNtDizC3GC9Q8ap1RCh4oyQ\nMnEcYTpEnUlExTRTOguYLEekHQh9ZejMNPB0NeOKslpzrS9HI7KAmK//pXai\nqhWoMg+vSrjvsQnop+d6caCcQL0+3uy6yWfmsAS1VG2DRJQ0aESe12ip9WIx\nPqTWdxsGMXpT5PjZ+rgKPK9dKSZ58M/x8IVioSKBetgt82ZJNPJPXIKIBhlW\nfZSuknt1NA+AqLfdJxYSyoDVDVOBZ+8CcijQ/dPPDrEPRgb0WgBEwdmofUWM\nB1nHvLI1SBKY6zzyLkKKpm49s+m5STn4zgpccXO2p37SMzyhoiDpRAa6p+GA\ny7zC\r\n=TraH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","engines":{"node":">=8.9.0"},"gitHead":"ff312f6ee7f54fa8a8fdce52165fa879eb8bdb20","scripts":{"test":"npm run _lint && npm run nyc_mocha ./test/local","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","prepare":"patch-package --exclude 'nothing'","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","test-smoke":"npm run _mocha ./test/smoke","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && npm prune --production && mv npm-shrinkwrap.json npm-shrinkwrap.json.bak && npm shrinkwrap","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"deprecated":"ganache-core is now ganache; visit https://trfl.io/g7 for details","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"7.4.0","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.19.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.11","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","keccak":"3.0.1","lodash":"4.17.20","levelup":"3.1.1","cachedown":"1.0.0","lru-cache":"5.1.1","websocket":"1.0.32","seedrandom":"3.0.1","eth-sig-util":"3.0.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.2.0","patch-package":"6.2.2","ethereumjs-abi":"0.6.8","level-sublevel":"6.6.4","ethereumjs-util":"6.2.1","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.5","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","source-map-support":"0.5.12","merkle-patricia-tree":"3.0.0","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"devDependencies":{"nyc":"^15.1.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.11","husky":"4.0.10","mocha":"7.2.0","eslint":"6.8.0","ethers":"4.0.48","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","ethereumjs-wallet":"0.6.5","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.8","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"bundleDependencies":["keccak"],"optionalDependencies":{"web3":"1.2.11","ethereumjs-wallet":"0.6.5"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.2_1610470887498_0.921565980433976","host":"s3://npm-registry-packages"}},"2.13.2-tezos.0":{"name":"ganache-core","version":"2.13.2-tezos.0","license":"MIT","_id":"ganache-core@2.13.2-tezos.0","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":"seesemichaelj","email":"seesemichaelj@gmail.com"},{"name":"fainashalts","email":"fainashalts@gmail.com"},{"name":"haltman","email":"harry.j.altman@gmail.com"},{"name":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"860940d5b63bb570768fc0a923034807c8eebd1b","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2-tezos.0.tgz","fileCount":53,"integrity":"sha512-iUOSdFfBKHEqmhOepQjAGP0yIXn+XGQDoaEXlSmJ6ESakmgOARyQSdhcXnPpYrr89Tgxxkh907MQzTbqqUQDZg==","signatures":[{"sig":"MEUCIQCPySi4372PU5MBpHkGNpr1RNbSxoob+D2kanHvXgdECwIgdoIseX4ZaymrIJbxEhuOeF6ybdLGBhrYwthQcCwrihs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2208485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGs57CRA9TVsSAnZWagAAubgP/jkPshr3rQrZAkOiDZaN\nRHe+JIVF5sw3vJgzB86zNivhNyuujVi55HBIKUdIGdt1Nfu0yQ26+ML2BQaU\n4jFoqkF8cnlYZ8L5rfXime2YRD2YXjnCVu+E8gvpQzRHGjoz5TsqgYKTn3xk\nGW+OLs0TS9GozVIB9z9FvNXS/IEMBFipKIdGFg/+amlCWExgHjs/D69TGsQ7\nMoLKIhjFDZdLqMY8zyP8lxdQEhL1d6ip+78gHw3xDaCKa43sRc1PKhytExd5\nfQPK8GBvzhExTxgRx2FBEXS0W6TY1UMAQcMRSPixUwwrI7N7GWnKcVmWpN35\nB4jgefBxyngtLp1QJGBEPnQ9fM8XrjLuqgjW/DwAECxpKSEXP/GtFzaxxYSt\niGixSkOuDeL2LqT7nLDBO14j9mRMDGxOvqiSM8A7j/FN1wSPT00CJzYAMVH2\n9kGq1kFa46DHVrkOr1RoPG1L0vWLXKAiSfgn+Df3Qxslh6gLj/+DrdB2JiiW\ntyb8y9k7DaSc51hi0kJypEiikxhzDS/7ZZIGnxwzyESKyGQy/RKH0bI5zgRt\necdYlroEPhbrwKVsEXjejd98eJwr0E/RwfwRwA3mRQAfk67M+/l5wmP+5jxE\nUrP/f4bVD1XQipel+8kP0odA+hI4uGP7DSHXRzEzUfg2QAmdsoTXtVQrAh7H\n12zv\r\n=xYzD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#ethereum-implemented-methods) | [Custom Methods](#ethereum-custom-methods) | [Unsupported Methods](#ethereum-unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v10.7.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n### Ethereum:\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n### Ethereum and Tezos\n\n* `\"flavor\"`: The blockchain technology to simulate. Valid values are `\"ethereum\"` or `\"tezos\"`. Default is `\"ethereum\"`.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"port\"`: `number` Port number to listen on when running as a server. Defaults to port `8545` (ethereum) or `8732` (tezos).\n* `\"seed\"`: `string` Use arbitrary data to generate accounts to be used.\n\n### Ethereum\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in Ether.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.  Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`. Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n### Tezos\n\n * `\"defaultBalance\"`: `number` - The default account balance, specified in Tez.\n\n## Ethereum, Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Ethereum, Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Ethereum, Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=10.7.0"},"gitHead":"3cf490b4af8151a20af8aabd246662b40de7963b","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","build:tezos-image":"docker build -t trufflesuite/flextesa-mini-archive -f ./scripts/docker/Dockerfile ./scripts/docker/","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.11","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.19.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","bs58check":"^2.1.2","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","superagent":"5.2.2","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","libsodium-wrappers":"0.7.6","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","@truffle/contract":"^5.1.0-tezos.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.2-tezos.0_1612369530489_0.4752796813699882","host":"s3://npm-registry-packages"}},"2.13.2-tezos.2":{"name":"ganache-core","version":"2.13.2-tezos.2","license":"MIT","_id":"ganache-core@2.13.2-tezos.2","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":"truffle-cicd","email":"david+truffle@trufflesuite.com"}],"homepage":"https://github.com/trufflesuite/ganache-core#readme","bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"dist":{"shasum":"bffe59a902e13a64a8854926a176f3ee8f6dee68","tarball":"https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2-tezos.2.tgz","fileCount":54,"integrity":"sha512-qWipVxn0zVqN9zt/AExEyTghNNmFN5jN80RDyOaeESGHbclT5L6B51WM/z8eSt36ITux3RW9KRAWnYfP7oq+sw==","signatures":[{"sig":"MEYCIQCQbFEvW1IX6xiHg9QnaRftyUQZhxT+kLq3zFiVMn9wywIhAO/x6S1Wf3Xm6frDSUjEjz4gQIfhHHhhnGTcdC5auB5I","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2213076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLASqCRA9TVsSAnZWagAAdjQQAI2tSN2c/NXRdIGSI0hX\noyq8zVfQQOdVfm42KVhQq90N8/8v+XDoe0LxyEbf9V+UpbpROJ2pF1mILNZU\niU0SMYhiDMvrOyPhjUjc06p9GJThajlV47z7OlFURyeNVcUvKYSkN1X/vrmL\nl1Cnn41dh3AmqLZ8znfn4Wtoz9IDko6MkCxVlFwfhswPR2jvuqco6Da1eChj\n8X8aAtVYSXZ4jDVMfT+ZCT8/P83ElAn+6Q06/+AxyKNRXQyBEXqGKxIaXZiU\nQwlJvNEI7ewWjKzfRo+YJ3kDRPHN+d0OxBKOPXHyFKgcffazVCLW7IpQF1D2\nV2N1TyjbWi7zpNkdVOOhkjoQ46lFY05Ynk4XjMiDBoRSTiQ3KjN0TQQrhTGi\nbyYtKPhS500XgUgevV2DdFCgud9qHxbL8E2kRHAy20wwunetv1ExFYsNjVg3\n889ucVJIBlajF7WBwvbSM/dBJ1iTmJ2QI7xWQtw2dOr1hCqAsIqgoe3KUs9F\nMNlzbXeqkOnXcvaRlvux3rEcKtlO3xuCT/kf5Qs2Mx1GfmF6k4MJZXoiy9T9\ng7sTmW/pzNXVObOc/JLtjnrX6VUR6Lt0elbXfLylADK8Bne2qTb/bVpgdl13\n8kONAx2YzjuJucQa4tYeQAx5+uqUN4jKYMJ9cw9lOaOv150WnFsBBrwrCEpz\nv0Om\r\n=4yvX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./index.js","husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./typings/index.d.ts","readme":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core)\n[![Build Status](https://travis-ci.org/trufflesuite/ganache-core.svg?branch=master)](https://travis-ci.org/trufflesuite/ganache-core)\n[![Coverage Status](https://coveralls.io/repos/github/trufflesuite/ganache-core/badge.svg?branch=develop)](https://coveralls.io/github/trufflesuite/ganache-core?branch=develop)\n# Ganache Core\n\nThis is the core code that powers the Ganache application and the Ganache command line tool.\n\n[Usage](#usage) | [Options](#options) | [Implemented Methods](#ethereum-implemented-methods) | [Custom Methods](#ethereum-custom-methods) | [Unsupported Methods](#ethereum-unsupported-methods) | [Testing](#testing)\n\n## Installation\n\n`ganache-core` is written in JavaScript and distributed as a Node.js package via `npm`. Make sure you have Node.js (>= v10.7.0) installed, and your environment is capable of installing and compiling `npm` modules.\n\n**macOS** Make sure you have the XCode Command Line Tools installed. These are needed in general to be able to compile most C based languages on your machine, as well as many npm modules.\n\n**Windows** See our [Windows install instructions](https://github.com/trufflesuite/ganache-cli/wiki/Installing-ganache-cli-on-Windows).\n\n**Ubuntu/Linux** Follow the basic instructions for installing [Node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) and make sure that you have `npm` installed, as well as the `build-essential` `apt` package (it supplies `make` which you will need to compile most things). Use the official Node.js packages, *do not use the package supplied by your distribution.*\n\nUsing npm:\n\n```Bash\nnpm install ganache-core\n```\n\nor, if you are using [Yarn](https://yarnpkg.com/):\n\n```Bash\nyarn add ganache-core\n```\n\n\n## Usage\n\nAs a general HTTP and WebSocket server:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst server = ganache.server();\nconst provider = server.provider;\nserver.listen(port, function(err, blockchain) { ... });\n```\n\n### Ethereum:\n\nAs a [Web3](https://github.com/ethereum/web3.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst web3 = new Web3(ganache.provider());\n```\nIf web3 is already initialized:\n```javascript\nconst ganache = require(\"ganache-core\");\nweb3.setProvider(ganache.provider());\n```\nNOTE: depending on your web3 version, you may need to set a number of confirmation blocks\n```javascript\nconst web3 = new Web3(provider, null, { transactionConfirmationBlocks: 1 });\n```\n\nAs an [ethers.js](https://github.com/ethers-io/ethers.js/) provider:\n\n```javascript\nconst ganache = require(\"ganache-core\");\nconst provider = new ethers.providers.Web3Provider(ganache.provider());\n```\n\n## Options\n\nBoth `.provider()` and `.server()` take a single object which allows you to specify behavior of the Ganache instance. This parameter is optional. Available options are:\n\n### Ethereum and Tezos\n\n* `\"flavor\"`: The blockchain technology to simulate. Valid values are `\"ethereum\"` or `\"tezos\"`. Default is `\"ethereum\"`.\n* `\"logger\"`: `Object` - Object, like `console`, that implements a `log()` function.\n* `\"total_accounts\"`: `number` - Number of accounts to generate at startup.\n* `\"port\"`: `number` Port number to listen on when running as a server. Defaults to port `8545` (ethereum) or `8732` (tezos).\n* `\"seed\"`: `string` Use arbitrary data to generate accounts to be used.\n\n### Ethereum\n\n* `\"accounts\"`: `Array` of `Object`'s of the following shape: `{ secretKey: privateKey, balance: HexString }`.\n  * If `secretKey` is specified, the key is used to determine the account's address. Otherwise, the address is auto-generated.\n  * The `balance` is a hexadecimal value of the amount of Ether (in Wei) you want the account to be pre-loaded with.\n* `\"blockTime\"`: `number` - Specify blockTime in seconds for automatic mining. If you don't specify this flag, ganache will instantly mine a new block for every transaction. Using the `blockTime` option is discouraged unless you have tests which require a specific mining interval.\n* `\"debug\"`: `boolean` - Output VM opcodes for debugging\n* `\"default_balance_ether\"`: `number` - The default account balance, specified in Ether.\n* `\"mnemonic\"`: Use a specific HD wallet mnemonic to generate initial addresses.\n* `\"fork\"`: `string` or `object` - Fork from another currently running Ethereum client at a given block.  When a `string`, input should be the HTTP location and port of the other client, e.g. `http://localhost:8545`. You can optionally specify the block to fork from using an `@` sign: `http://localhost:8545@1599200`. Can also be a `Web3 Provider` object, optionally used in conjunction with the `fork_block_number` option below.\n* `\"fork_block_number\"`: `string` or `number` - Block number the provider should fork from, when the `fork` option is specified. If the `fork` option is specified as a string including the `@` sign and a block number, the block number in the `fork` parameter takes precedence.\n* `\"network_id\"`: Specify the network id ganache-core will use to identify itself (defaults to the current time or the network id of the forked blockchain if configured)\n* `\"time\"`: `Date` - Date that the first block should start. Use this feature, along with the `evm_increaseTime` method to test time-dependent code.\n* `\"locked\"`: `boolean` - whether or not accounts are locked by default.\n* `\"unlocked_accounts\"`: `Array` - array of addresses or address indexes specifying which accounts should be unlocked.\n* `\"db_path\"`: `String` - Specify a path to a directory to save the chain database. If a database already exists, `ganache-core` will initialize that chain instead of creating a new one.  Note: You will not be able to modify state (accounts, balances, etc) on startup when you initialize ganache-core with a pre-existing database.\n* `\"db\"`: `Object` - Specify an alternative database instance, for instance [MemDOWN](https://github.com/level/memdown).\n* `\"ws\"`: `boolean` Enable a websocket server. This is `true` by default.\n* `\"account_keys_path\"`: `String` - Specifies a file to save accounts and private keys to, for testing.\n* `\"vmErrorsOnRPCResponse\"`: `boolean` - Whether or not to transmit transaction failures as RPC errors. Set to `false` for error reporting behaviour which is compatible with other clients such as geth and Parity. This is `true` by default to replicate the error reporting behavior of previous versions of ganache.\n* `\"hdPath\"`: The hierarchical deterministic path to use when generating accounts. Default: \"m/44'/60'/0'/0/\"\n* `\"hardfork\"`: `String` Allows users to specify which hardfork should be used. Supported hardforks are `byzantium`, `constantinople`, `petersburg`, `istanbul`, and `muirGlacier` (default).\n* `\"allowUnlimitedContractSize\"`: `boolean` - Allows unlimited contract sizes while debugging (NOTE: this setting is often used in conjuction with an increased `gasLimit`). By setting this to `true`, the check within the EVM for contract size limit of 24KB (see [EIP-170](https://git.io/vxZkK)) is bypassed. Setting this to `true` **will** cause `ganache-core` to behave differently than production environments. (default: `false`; **ONLY** set to `true` during debugging).\n* `\"gasPrice\"`: `String::hex` Sets the default gas price for transactions if not otherwise specified. Must be specified as a `hex` encoded string in `wei`. Defaults to `\"0x77359400\"` (2 `gwei`).\n* `\"gasLimit\"`: `String::hex | number` Sets the block gas limit. Must be specified as a `hex` string or `number`. Defaults to `\"0x6691b7\"`.\n* `\"callGasLimit\"`: `number` Sets the transaction gas limit for `eth_call` and `eth_estimateGas` calls. Must be specified as a `hex` string. Defaults to `\"0x1fffffffffffff\"` (`Number.MAX_SAFE_INTEGER`).\n* `\"keepAliveTimeout\"`:  `number` If using `.server()` - Sets the HTTP server's `keepAliveTimeout` in milliseconds. See the [NodeJS HTTP docs](https://nodejs.org/api/http.html#http_server_keepalivetimeout) for details. `5000` by default.\n\n### Tezos\n\n * `\"defaultBalance\"`: `number` - The default account balance, specified in Tez.\n\n## Ethereum, Implemented Methods\n\nThe RPC methods currently implemented are:\n\n* [eth_accounts](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts)\n* [eth_blockNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blockNumber)\n* [eth_call](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call)\n* `eth_chainId`\n* [eth_coinbase](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbase)\n* [eth_estimateGas](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_estimateGas)\n* [eth_gasPrice](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasPrice)\n* [eth_getBalance](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBalance)\n* [eth_getBlockByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByNumber)\n* [eth_getBlockByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockByHash)\n* [eth_getBlockTransactionCountByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByHash)\n* [eth_getBlockTransactionCountByNumber](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getBlockTransactionCountByNumber)\n* [eth_getCode](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCode)\n* [eth_getCompilers](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getCompilers)\n* [eth_getFilterChanges](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterChanges)\n* [eth_getFilterLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getFilterLogs)\n* [eth_getLogs](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getLogs)\n* [eth_getStorageAt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getStorageAt)\n* [eth_getTransactionByHash](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByHash)\n* [eth_getTransactionByBlockHashAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockHashAndIndex)\n* [eth_getTransactionByBlockNumberAndIndex](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionByBlockNumberAndIndex)\n* [eth_getTransactionCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionCount)\n* [eth_getTransactionReceipt](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getTransactionReceipt)\n* [eth_hashrate](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_hashrate)\n* [eth_mining](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_mining)\n* [eth_newBlockFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newBlockFilter)\n* [eth_newFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newFilter)\n* [eth_protocolVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_protocolVersion)\n* [eth_sendTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendTransaction)\n* [eth_sendRawTransaction](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendRawTransaction)\n* [eth_sign](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign)\n* `eth_signTypedData`\n* [eth_subscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_subscribe)\n* [eth_unsubscribe](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_unsubscribe)\n* [shh_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#shh_version)\n* [net_version](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_version)\n* [net_peerCount](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_peerCount)\n* [net_listening](https://github.com/ethereum/wiki/wiki/JSON-RPC#net_listening)\n* [eth_uninstallFilter](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter)\n* [eth_syncing](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_syncing)\n* [web3_clientVersion](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientVersion)\n* [web3_sha3](https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_sha3)\n* `bzz_hive`\n* `bzz_info`\n\n#### Management API Methods\n\n* [debug_traceTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#debug_tracetransaction)\n* [miner_start](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_start)\n* [miner_stop](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#miner_stop)\n* [personal_sendTransaction](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_sendTransaction)\n* [personal_unlockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_unlockAccount)\n* [personal_importRawKey](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_importRawKey)\n* [personal_newAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newAccount)\n* [personal_lockAccount](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_lockAccount)\n* [personal_listAccounts](https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_listaccounts)\n\n## Ethereum, Custom Methods\n\nSpecial non-standard methods that aren’t included within the original RPC specification:\n* `evm_snapshot` : Snapshot the state of the blockchain at the current block. Takes no parameters. Returns the integer id of the snapshot created. A snapshot can only be used once. After a successful `evm_revert`, the same snapshot id cannot be used again. Consider creating a new snapshot after each `evm_revert` *if you need to revert to the same point multiple times*.\n  ```bash\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_snapshot\",\"params\":[]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x1\" }\n  ```\n* `evm_revert` : Revert the state of the blockchain to a previous snapshot. Takes a single parameter, which is the snapshot id to revert to. This deletes the given snapshot, as well as any snapshots taken after (Ex: reverting to id `0x1` will delete snapshots with ids `0x1`, `0x2`, `etc`...  If no snapshot id is passed it will revert to the latest snapshot. Returns `true`.\n  ```bash\n  # Ex: ID \"1\" (hex encoded string)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_revert\",\"params\":[\"0x1\"]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": true }\n  ```\n* `evm_increaseTime` : Jump forward in time. Takes one parameter, which is the amount of time to increase in seconds. Returns the total time adjustment, in seconds.\n  ```bash\n  # Ex: 1 minute (number)\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_increaseTime\",\"params\":[60]}' \\\n          http://localhost:8545\n  ```\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"060\" }\n  ```\n* `evm_mine` : Force a block to be mined (independent of mining status: started | stopped). Takes one **optional** parameter, which is the timestamp a block should setup as the mining time. NOTE: the timestamp parameter should be specified in `seconds`. In JavaScript you would calculate it like this: `Math.floor(Date.now() / 1000);`\n  ```bash\n  # Ex: new Date(\"2009-01-03T18:15:05+00:00\").getTime()\n  curl -H \"Content-Type: application/json\" -X POST --data \\\n          '{\"id\":1337,\"jsonrpc\":\"2.0\",\"method\":\"evm_mine\",\"params\":[1231006505000]}' \\\n          http://localhost:8545\n  ```\n\n  ```json\n  { \"id\": 1337, \"jsonrpc\": \"2.0\", \"result\": \"0x0\" }\n  ```\n\n## Ethereum, Unsupported Methods\n\n* `eth_compileSolidity`: If you'd like Solidity compilation in Javascript, please see the [solc-js project](https://github.com/ethereum/solc-js).\n\n\n## Testing\n\nRun tests via:\n\n```\n$ npm test\n```\n\n## License\n[MIT](https://tldrlegal.com/license/mit-license)\n","engines":{"node":">=10.7.0"},"gitHead":"05504e67eac65f442da7f7200eb29e65df2bd889","scripts":{"test":"npm run _lint && npm run nyc_mocha","_lint":"eslint --ignore-path .gitignore .","build":"webpack-cli --config ./webpack/node/core.webpack.config.js","_mocha":"mocha --check-leaks --recursive --globals _scratch --opts ./test/.mocharc","format":"prettier --write \"{lib,perf,test}/**/*.js\" && eslint --fix --ignore-path .gitignore .","coverage":"nyc report --reporter=text-lcov | coveralls","build-web":"webpack-cli --config ./webpack/web-experimental/core.webpack.config.js","nyc_mocha":"nyc npm run _mocha","test-build":"cross-env TEST_BUILD=node npm run _mocha","postpublish":"rm npm-shrinkwrap.json && mv npm-shrinkwrap.json.bak npm-shrinkwrap.json && npm ci","prepublishOnly":"npm run test && npm run build && npm run test-build && cp npm-shrinkwrap.json npm-shrinkwrap.json.bak && rm -rf node_modules/web3-providers-ws/node_modules/websocket/.git && npm prune --only=prod","build:tezos-image":"docker build -t trufflesuite/flextesa-mini-archive -f ./scripts/docker/Dockerfile ./scripts/docker/","test-web-experimental":"cross-env TEST_BUILD=web-experimental npm run _mocha"},"_npmUser":{"name":"davidmurdoch","email":"david@davidmurdoch.com"},"prettier":{"printWidth":120,"arrowParens":"always"},"repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"_npmVersion":"6.14.11","description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","directories":{"lib":"./lib"},"lint-staged":{"*.js":["prettier --write","eslint --fix --ignore-path .gitignore","git add"]},"_nodeVersion":"12.19.0","dependencies":{"tmp":"0.1.0","heap":"0.2.6","web3":"1.2.4","async":"2.6.2","bip39":"2.5.0","clone":"2.1.2","debug":"3.2.6","lodash":"4.17.14","levelup":"3.1.1","bs58check":"^2.1.2","cachedown":"1.0.0","websocket":"1.0.29","seedrandom":"3.0.1","superagent":"5.2.2","eth-sig-util":"2.3.0","encoding-down":"5.0.4","ethereumjs-tx":"2.1.2","ethereumjs-vm":"4.1.3","ethereumjs-abi":"0.6.7","level-sublevel":"6.6.4","ethereumjs-util":"6.2.0","ethereumjs-block":"2.2.2","ethereumjs-common":"1.5.0","ethereumjs-wallet":"0.6.3","abstract-leveldown":"3.0.0","ethereumjs-account":"3.0.0","libsodium-wrappers":"0.7.6","source-map-support":"0.5.12","merkle-patricia-tree":"2.3.2","web3-provider-engine":"14.2.1"},"eslintConfig":{"env":{"es6":true,"node":true},"root":true,"rules":{"semi":["error","always"],"curly":["error","all"],"quotes":["error","double"],"max-len":["error",120,{"ignoreRegExpLiterals":true}],"wrap-iife":["error","outside"],"brace-style":["error","1tbs",{"allowSingleLine":false}],"space-before-function-paren":["error","never"]},"extends":"standard","parserOptions":{"sourceType":"module","ecmaVersion":8,"ecmaFeatures":{"impliedStrict":true}}},"_hasShrinkwrap":true,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","pify":"4.0.1","solc":"0.6.1","temp":"0.9.1","web3":"1.2.4","husky":"4.0.10","mocha":"7.0.0","eslint":"6.8.0","ethers":"4.0.43","semver":"7.1.1","memdown":"5.1.0","request":"^2.88.0","webpack":"4.41.5","prettier":"^1.19.1","browserfs":"1.4.3","coveralls":"^3.0.9","cross-env":"6.0.3","js-scrypt":"0.2.0","portfinder":"^1.0.25","@types/web3":"^1.0.19","lint-staged":"10.0.0","webpack-cli":"3.3.10","assert-match":"^1.1.1","number-to-bn":"1.7.0","@truffle/contract":"^5.1.0-tezos.0","ethereumjs-wallet":"0.6.3","eslint-plugin-node":"11.0.0","mocha-lcov-reporter":"^1.3.0","eslint-plugin-import":"2.20.0","eslint-plugin-promise":"4.2.1","terser-webpack-plugin":"2.3.2","eslint-config-standard":"14.1.0","eslint-plugin-standard":"4.0.1","webpack-bundle-size-analyzer":"3.1.0"},"optionalDependencies":{"web3":"1.2.4","ethereumjs-wallet":"0.6.3"},"_npmOperationalInternal":{"tmp":"tmp/ganache-core_2.13.2-tezos.2_1613497513667_0.9179693164183083","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-03-27T17:30:39.433Z","modified":"2026-04-29T21:46:58.704Z","0.0.1":"2017-03-27T17:30:39.433Z","0.0.2":"2017-04-28T16:39:34.880Z","1.0.0":"2017-06-27T16:11:35.473Z","1.0.1":"2017-06-27T16:26:03.739Z","1.1.0":"2017-08-18T18:03:31.196Z","1.1.1":"2017-08-21T21:56:06.725Z","1.1.2":"2017-08-23T15:13:09.821Z","1.1.3":"2017-09-12T21:38:07.159Z","1.1.4":"2017-10-19T23:46:29.630Z","2.0.0":"2017-11-02T01:52:44.608Z","2.0.1":"2017-11-14T20:14:07.986Z","2.0.2":"2017-11-16T00:51:31.961Z","3.0.0-beta.0":"2018-01-16T04:42:52.177Z","2.1.0-beta.0":"2018-01-23T02:10:57.266Z","2.1.0-beta.1":"2018-02-14T04:03:33.530Z","2.1.0-beta.2":"2018-02-27T10:12:56.164Z","2.1.0-beta.3":"2018-02-27T10:29:27.230Z","2.1.0-beta.4":"2018-02-27T10:56:44.757Z","2.1.0-beta.5":"2018-02-27T11:46:30.420Z","2.1.0-beta.6":"2018-02-27T13:09:28.435Z","2.1.0-beta.7":"2018-02-27T14:53:19.502Z","2.1.0":"2018-03-07T01:52:54.988Z","2.1.1":"2018-06-11T22:00:52.915Z","2.1.2":"2018-06-13T19:17:00.419Z","2.1.3":"2018-06-27T19:38:53.372Z","2.1.4":"2018-07-05T22:56:27.591Z","2.1.5":"2018-07-09T22:41:24.197Z","2.1.6":"2018-08-01T21:10:05.412Z","2.2.0":"2018-08-15T03:55:09.134Z","2.2.1":"2018-08-15T23:10:13.211Z","2.3.0-beta.0":"2018-11-14T21:51:37.998Z","2.3.0":"2018-11-15T21:54:10.685Z","2.3.1-beta.0":"2018-11-17T13:08:54.862Z","2.3.1-beta.1":"2018-11-17T13:24:52.651Z","2.3.1":"2018-11-17T16:42:15.213Z","2.3.2-beta.0":"2018-11-20T19:27:35.431Z","2.3.2-beta.1":"2018-11-20T21:21:11.848Z","2.3.2-beta.2":"2018-11-21T19:45:40.428Z","2.3.2-beta.3":"2018-11-22T15:35:22.816Z","2.3.2-beta.4":"2018-12-11T22:41:51.088Z","2.3.2-beta.5":"2018-12-12T22:21:37.674Z","2.3.2-beta.6":"2018-12-17T17:18:41.236Z","2.3.2":"2018-12-17T23:04:36.945Z","2.3.3":"2018-12-20T16:28:58.723Z","2.3.4-beta.0":"2019-01-09T23:27:08.753Z","2.4.0-beta.0":"2019-01-09T23:35:26.077Z","2.5.0-eip1283.0":"2019-01-24T19:49:55.846Z","2.5.0-eip1283.1":"2019-01-24T21:19:29.916Z","2.4.0":"2019-01-29T22:38:21.284Z","2.5.0":"2019-02-27T23:14:00.528Z","2.5.1":"2019-02-28T00:36:30.636Z","2.5.2":"2019-03-02T14:27:40.213Z","2.5.3":"2019-03-02T14:30:55.402Z","2.5.4-beta.0":"2019-03-18T23:00:49.788Z","2.5.4-beta.1":"2019-03-19T01:25:28.056Z","2.5.4-beta.2":"2019-03-19T01:37:40.514Z","2.5.4":"2019-04-04T22:17:16.217Z","2.5.5-beta.0":"2019-04-08T21:01:54.885Z","2.5.5":"2019-04-15T19:53:37.274Z","2.5.6-beta.0":"2019-04-30T22:14:37.541Z","2.5.6":"2019-06-13T13:56:44.946Z","2.5.7-beta.0":"2019-07-02T21:29:54.804Z","2.5.7":"2019-07-09T17:20:17.182Z","2.5.8-beta.0":"2019-07-09T17:47:49.863Z","2.6.0":"2019-07-17T18:48:49.559Z","2.6.1-beta.0":"2019-07-18T18:45:13.789Z","2.7.0-beta.0":"2019-07-31T15:37:24.332Z","2.6.1":"2019-07-31T15:44:41.141Z","2.7.0":"2019-08-14T16:11:14.052Z","2.8.0-beta.0":"2019-08-27T16:38:17.920Z","2.8.0":"2019-09-09T22:45:45.284Z","2.9.0-istanbul.0":"2019-09-20T23:51:43.381Z","2.9.1-beta.0":"2019-10-09T05:17:58.722Z","2.9.1":"2020-01-06T18:24:53.202Z","2.9.2-beta.0":"2020-01-14T22:38:45.883Z","2.9.2-beta.1":"2020-01-14T23:29:02.743Z","2.9.2":"2020-01-16T17:14:53.342Z","2.9.3-beta.0":"2020-01-17T17:09:12.246Z","2.10.0":"2020-01-29T21:08:43.715Z","2.10.1":"2020-01-30T02:25:43.182Z","2.10.2-websocket-close.0":"2020-01-30T20:09:00.216Z","2.10.2":"2020-02-13T23:18:35.334Z","2.11.0-tezos.0":"2020-05-28T23:05:43.825Z","2.11.0-tezos.1":"2020-05-29T21:19:26.554Z","2.11.0-tezos.2":"2020-06-10T16:15:55.007Z","2.11.0-beta.0":"2020-06-24T21:32:15.615Z","2.11.0":"2020-08-05T15:11:07.468Z","2.11.1":"2020-08-05T18:05:00.307Z","2.11.2":"2020-08-05T18:10:30.127Z","2.11.3-filecoin-alpha":"2020-08-06T23:07:14.384Z","2.11.3-forking.0":"2020-08-18T02:25:37.682Z","2.11.3-beta.0":"2020-08-25T00:58:48.161Z","2.11.3":"2020-09-08T20:02:36.181Z","2.12.0-beta.0":"2020-09-15T18:08:27.328Z","2.12.0":"2020-09-28T21:22:13.169Z","2.12.1":"2020-09-28T21:33:59.529Z","2.12.2-beta.0":"2020-09-29T22:28:32.252Z","2.13.0-alpha.0":"2020-10-01T15:08:07.607Z","2.13.0-alpha.1":"2020-10-01T16:43:23.062Z","2.13.0-alpha.2":"2020-10-01T18:06:33.049Z","2.13.0-beta.0":"2020-10-06T20:23:15.602Z","2.13.0-beta.1":"2020-10-07T21:34:42.675Z","2.13.0-rc.0":"2020-10-09T20:59:16.379Z","2.13.0":"2020-10-09T22:01:58.044Z","2.13.1-alpha.0":"2020-10-19T17:12:38.310Z","2.13.1-alpha.1":"2020-10-19T17:32:06.353Z","2.13.1-alpha.2":"2020-10-19T18:31:23.297Z","2.13.1-alpha.4":"2020-10-19T20:35:13.111Z","2.13.1-beta.0":"2020-10-19T20:56:04.782Z","2.13.1-beta.1":"2020-10-26T15:36:45.210Z","2.13.1":"2020-10-26T16:32:24.575Z","2.12.0-tezos.0":"2020-12-03T19:07:18.470Z","2.13.2":"2021-01-12T17:01:27.748Z","2.13.2-tezos.0":"2021-02-03T16:25:30.810Z","2.13.2-tezos.2":"2021-02-16T17:45:13.936Z"},"bugs":{"url":"https://github.com/trufflesuite/ganache-core/issues"},"license":"MIT","homepage":"https://github.com/trufflesuite/ganache-core#readme","repository":{"url":"git+https://github.com/trufflesuite/ganache-core.git","type":"git"},"description":"[![npm Version](https://img.shields.io/npm/v/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![npm Downloads](https://img.shields.io/npm/dm/ganache-core.svg)](https://www.npmjs.com/package/ganache-core) [![Build Status](https://travis-ci.o","maintainers":[{"email":"david@davidmurdoch.com","name":"davidmurdoch"},{"email":"jeff.smale@consensys.net","name":"jeff.smale"},{"email":"it@consensys.net","name":"rizedr"},{"email":"david+truffle@trufflesuite.com","name":"truffle-cicd"},{"email":"tim@timothyjcoulter.com","name":"tcoulter"}],"readme":"","readmeFilename":""}