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.
The goal of this module is to both enable you to quickly test your smart contracts via javascript/typescript and additionally, let you test your own web3 code vs. the ganache ethereum simulator.
npm install ethereum-simulator
yarn add ethereum-simulator
import { EthereumSimulator } from 'ethereum-simulator';
const ethSim = new EthereumSimulator();
await ethSim.listen(8545);
...
await ethSim.close();
var EthereumSimulator = require('ethereum-simulator');
var ethSim = new EthereumSimulator();
await ethSim.listen(8545);
...
await ethSim.close();
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:
-
addContract
to add a contract to deploy on ganache, expects a string that contract the contract code. -
setArguments
to set the arguments to send when deploying the above contract -
compileAndDeployContractOnGanache
this will compile and then deploy the contract added to the ganache instance -
callDataFromSimulator
this will call a specific contract and function interface on the simulator (closed loop testing of the contract) -
callDataFromEthereum
the 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.