57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
import yargs from "yargs";
|
|
import { hideBin } from "yargs/helpers";
|
|
import { DefaultStore } from "../src";
|
|
import Web3 from "web3";
|
|
|
|
const parser = yargs(hideBin(process.argv))
|
|
.usage("Usage: $0")
|
|
.options({
|
|
testnet: {
|
|
type: "boolean",
|
|
default: false,
|
|
desc: "Fetch testnet contract fees instead of mainnet",
|
|
},
|
|
});
|
|
|
|
const KEEPER_ADDRESS = {
|
|
mainnet: "0xBcAb779fCa45290288C35F5E231c37F9fA87b130",
|
|
testnet: "0xa5A68ed167431Afe739846A22597786ba2da85df",
|
|
};
|
|
|
|
async function main() {
|
|
const argv = await parser.argv;
|
|
const entries = [];
|
|
const keeperAddress = KEEPER_ADDRESS[argv.testnet ? "testnet" : "mainnet"];
|
|
for (const contract of Object.values(DefaultStore.entropy_contracts)) {
|
|
if (contract.getChain().isMainnet() === argv.testnet) continue;
|
|
try {
|
|
const provider = await contract.getDefaultProvider();
|
|
const w3 = new Web3(contract.getChain().getRpcUrl());
|
|
const balance = await w3.eth.getBalance(provider);
|
|
const keeperBalance = await w3.eth.getBalance(keeperAddress);
|
|
let version = "unknown";
|
|
try {
|
|
version = await contract.getVersion();
|
|
} catch (e) {
|
|
/* old deployments did not have this method */
|
|
}
|
|
const providerInfo = await contract.getProviderInfo(provider);
|
|
entries.push({
|
|
chain: contract.getChain().getId(),
|
|
contract: contract.address,
|
|
provider: providerInfo.uri,
|
|
balance,
|
|
keeperBalance,
|
|
seq: providerInfo.sequenceNumber,
|
|
version,
|
|
});
|
|
console.log(`Fetched info for ${contract.getId()}`);
|
|
} catch (e) {
|
|
console.error(`Error fetching info for ${contract.getId()}`, e);
|
|
}
|
|
}
|
|
console.table(entries);
|
|
}
|
|
|
|
main();
|