{"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","name":"ganache-core","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","license":"MIT","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"},"homepage":"https://github.com/trufflesuite/ganache-core#readme","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"]},"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"}],"_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"},"_id":"ganache-core@2.3.2-beta.4","version":"2.3.2-beta.4"}