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