40 lines
916 B
JavaScript
40 lines
916 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));
|
|
};
|