-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.js
More file actions
41 lines (33 loc) · 1.54 KB
/
main.js
File metadata and controls
41 lines (33 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
const config = require("./config.json");
const util = require("./util.js");
const TBW = require("./TBW.js");
const DAILY_FORGED_BLOCKS = 211;
exports.getPayouts = async (options) => {
config.blacklist = options.blacklist ? options.blacklist : [];
config.numBlocks = options.numBlocks ? options.numBlocks : DAILY_FORGED_BLOCKS;
config.delegate = options.delegate ? options.delegate : config.delegate;
config.blockShareFunc = options.blockShareFunc ? options.blockShareFunc : util.blockShareFunc;
config.nBlockTimePeriod = config.numBlocks * 8 * 51; //Look back numBlocks
config.startBlock = options.start ? options.start : config.start;
const startTime = new Date().getTime() / 1000;
if (config.startBlock)
console.log(`Calculating TBW and paying out from block ${config.startBlock}`);
else
console.log(`Calculating TBW and paying out ${config.numBlocks} forged blocks with ${config.nBlockTimePeriod} seconds look-back`);
const tbw = new TBW(config);
await tbw.init();
await tbw.getCurrentBalances();
await tbw.getBlocks();
await tbw.getNewTransactions();
tbw.processBalances();
tbw.getVoterWeights();
const payData = tbw.finalize(options.print);
console.log("True block weight complete");
console.log(`Run Time: ${((new Date().getTime() / 1000) - startTime).toFixed(2)} seconds.`);
return payData;
};
let args = process.argv.slice(2);
if (args.length >= 1) {
if (args[0] == "start")
exports.getPayouts({ print: false, numBlocks: config.numblocks || 211 });
}