forked from tornadocash/tornado-cli
Add script to update events cache
This commit is contained in:
parent
e3220b8a9e
commit
eaa384397a
@ -4,7 +4,8 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"updateCache": "node scripts/updateAllCache.js"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
82
scripts/updateAllCache.js
Normal file
82
scripts/updateAllCache.js
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
const childProcess = require('child_process');
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
const config = require('../config');
|
||||||
|
|
||||||
|
function getCurrentNetworkName(networkID) {
|
||||||
|
switch (networkID) {
|
||||||
|
case 1:
|
||||||
|
return 'Ethereum';
|
||||||
|
case 56:
|
||||||
|
return 'BinanceSmartChain';
|
||||||
|
case 100:
|
||||||
|
return 'GnosisChain';
|
||||||
|
case 137:
|
||||||
|
return 'Polygon';
|
||||||
|
case 42161:
|
||||||
|
return 'Arbitrum';
|
||||||
|
case 43114:
|
||||||
|
return 'Avalanche';
|
||||||
|
case 5:
|
||||||
|
return 'Goerli';
|
||||||
|
case 42:
|
||||||
|
return 'Kovan';
|
||||||
|
case 10:
|
||||||
|
return 'Optimism';
|
||||||
|
default:
|
||||||
|
return 'testRPC';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncDeposits(currency, amount, rpc) {
|
||||||
|
return childProcess.spawnSync('node', ['cli.js', 'checkCacheValidity', currency, amount, '--rpc', rpc]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncWithdrawals(currency, amount, rpc) {
|
||||||
|
return childProcess.spawnSync('node', ['cli.js', 'syncEvents', 'withdrawal', currency, amount, '--rpc', rpc]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkSyncResult(resultData, networkName, currency, amount, eventType) {
|
||||||
|
const resultOutput = resultData.output.toString();
|
||||||
|
|
||||||
|
if (resultData.error || resultOutput.includes('Error:')) {
|
||||||
|
console.log(resultOutput);
|
||||||
|
console.error(`Error while updating cache for ${currency.toUpperCase()} ${amount} ${eventType}s on ${networkName}`);
|
||||||
|
} else {
|
||||||
|
console.log(`Successfully updated cache for ${currency.toUpperCase()} ${amount} ${eventType}s on ${networkName}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
for (const [networkIDInfo, network] of Object.entries(config.deployments)) {
|
||||||
|
const networkID = Number(networkIDInfo.match(/\d+/)[0]);
|
||||||
|
const networkName = getCurrentNetworkName(networkID);
|
||||||
|
const defaultRpc = network.defaultRpc;
|
||||||
|
|
||||||
|
for (const [currency, _data] of Object.entries(network.tokens)) {
|
||||||
|
for (const amount of Object.keys(_data.instanceAddress)) {
|
||||||
|
console.log(`\nStart updating cache for ${currency.toUpperCase()} ${amount} deposits on ${networkName}`);
|
||||||
|
const depositsFile = path.join('cache', networkName.toLowerCase(), `deposits_${currency.toUpperCase()}_${amount}.json`);
|
||||||
|
let depositSyncResult = syncDeposits(currency, amount, defaultRpc);
|
||||||
|
|
||||||
|
// If deposit events tree has invalid root, need to reload it all from deployment block
|
||||||
|
if (depositSyncResult.output.includes('invalid root')) {
|
||||||
|
console.log(
|
||||||
|
`Events tree for ${currency.toUpperCase()} ${amount} ${eventType}s on ${networkName} has invalid root. Start full reloading.`
|
||||||
|
);
|
||||||
|
fs.rmSync(depositsFile);
|
||||||
|
depositSyncgResult = syncDeposits(currency, amount, defaultRpc);
|
||||||
|
}
|
||||||
|
checkSyncResult(depositSyncResult, networkName, currency, amount, 'deposit');
|
||||||
|
|
||||||
|
console.log(`\nStart updating cache for ${currency.toUpperCase()} ${amount} withdrawals on ${networkName}`);
|
||||||
|
const withdrawalSyncResult = syncWithdrawals(currency, amount, defaultRpc);
|
||||||
|
checkSyncResult(withdrawalSyncResult, networkName, currency, amount, 'withdrawal');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('\nAll event trees cache updated!\n');
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
Loading…
Reference in New Issue
Block a user