37 lines
961 B
JavaScript
37 lines
961 B
JavaScript
|
/*
|
||
|
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) {
|
||
|
console.log(await advanceBlock());
|
||
|
await sleep(1000);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn().catch(reason => console.error(reason))
|
||
|
}
|