/* This script advances Ganache network state. It runs as a sidecar pod alongside the devnet and ensures that manual token transfers triggered through the web UI will be able to be confirmed. */ advanceBlock = () => { return new Promise((resolve, reject) => { web3.currentProvider.send({ jsonrpc: "2.0", method: "evm_mine", id: new Date().getTime() }, (err, result) => { if (err) { return reject(err); } const newBlockHash = web3.eth.getBlock('latest').hash; return resolve(newBlockHash) }); }); } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } module.exports = function(callback) { const fn = async () => { while (true) { await advanceBlock(); await sleep(1000); } } fn().catch(reason => console.error(reason)) }