A node.js module that runs a simulated ethereum node using ganache and enables compilation and execution of a contract call via web3 and solcjs.
npm install ethereum-simulator
yarn add ethereum-simulator
;;await ethSim.listen8545;...await ethSim.close;
var EthereumSimulator = ;var ethSim = ;await ethSim;...await ethSim;
While the module can be used just as a wrapper to ganache-core, it is also possible to feed it with a contract and have it deploy the contract and later test any function call on that contract.
The test code instruments the entire function set with a sample contract (see test directory).
There are several exposed methods:
addContractto add a contract to deploy on ganache, expects a string that contract the contract code.
setArgumentsto set the arguments to send when deploying the above contract
compileAndDeployContractOnGanachethis will compile and then deploy the contract added to the ganache instance
callDataFromSimulatorthis will call a specific contract and function interface on the simulator (closed loop testing of the contract)
callDataFromEthereumthe same as above, but will accept a endpoint to work on
The module is written in TypeScript, using ganache-core, solc and web3. Tests are running with mocha+chai.
It will require node.js and npm installed.