head.js (625B)
1 const window = self; 2 3 self.importScripts( 4 'driver.js', 5 'web3.min.js', 6 ); 7 8 async function sync(driver) { 9 driver.w3.eth.subscribe('newBlockHeaders', async function(e, r) { 10 const c = await driver.w3.eth.getBlockTransactionCount(r.number); 11 for (let i = 0; i < c; i++) { 12 console.log('driver process ', r.number, i); 13 driver.process(r.number, i); 14 } 15 }); 16 } 17 18 onmessage = function(o) { 19 const w3 = new Web3(o.data.w3_provider); 20 21 const callback = (o) => { 22 this.postMessage(o); 23 }; 24 25 w3.eth.getBlockNumber().then(function(n) { 26 const driver = new Driver(w3, n, undefined, undefined, callback); 27 sync(driver); 28 }); 29 };