Skip to content

Commit

Permalink
add logs to user can view total time processing
Browse files Browse the repository at this point in the history
  • Loading branch information
longpv15 committed Dec 18, 2023
1 parent 65837c5 commit d970989
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 66 deletions.
71 changes: 40 additions & 31 deletions src/execute/executeStakerReward.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import {
sortByTimeStamp,
} from '../utils';
import { convertAddressesToArray } from '../utils/convert';
import { getTotalSecondProcess } from '../utils/date';
import {
DEFAULT_LIST_PRICE,
HEADER_FOR_STAKING_REWARD,
Expand All @@ -28,6 +29,8 @@ import {
import { Subgraph } from '../utils/subgraph';

export const main = async (argv: stakerRewardArgs) => {
const startTimeProcess = Date.now();

// validate address
const addresses = convertAddressesToArray(argv.staker_addresses);
if (!isValidAddresses(addresses)) {
Expand Down Expand Up @@ -71,6 +74,8 @@ export const main = async (argv: stakerRewardArgs) => {
`staker-reward`,
header,
);
const totalSecondsProcess = getTotalSecondProcess(startTimeProcess);
console.log(`==> ${totalSecondsProcess} seconds`);
};

const getHeader = (argv: stakerRewardArgs): string[] => {
Expand Down Expand Up @@ -127,37 +132,41 @@ const getDataExport = async (
): Promise<DataExport[]> => {
// set the address to lowercase
const addresses = convertAddressesToArray(argv.staker_addresses);
const resultsPromise = prepareData.map(async (item: PrepareData) => {

const results: DataExport[] = [];

for (const item of prepareData) {
const { oasPrices, timeData } = item;
const { block, epoch, timestamp } = timeData;
console.log('RUNNING EPOCH ', epoch);

const validatorResults = await Promise.all(
addresses?.map(async (address: string) => {
const listStakerStake = await subgraph.getListStakerStake(
block,
address,
epoch,
);

// format data
const { rowData } = getAdditionalDataForStakerReward(
oasPrices,
listStakerStake,
timeData,
argv.price,
address,
);
return {
rowData,
timestamp,
};
}),
);

return validatorResults;
});

const results = await Promise.all(resultsPromise);
return results.flat();
const startTimeProcess = Date.now();
console.log('PROCESSING WITH EPOCH', epoch);

const promises = addresses?.map(async (address: string) => {
const listStakerStake = await subgraph.getListStakerStake(
block,
address,
epoch,
);

// format data
const { rowData } = getAdditionalDataForStakerReward(
oasPrices,
listStakerStake,
timeData,
argv.price,
address,
);
return {
rowData,
timestamp,
};
});

const stakerResults = await Promise.all(promises);

results.push(...stakerResults);
const totalSecondsEpoch = getTotalSecondProcess(startTimeProcess);
console.info(`--> Epoch ${epoch} took ${totalSecondsEpoch} seconds`);
}
return results;
};
77 changes: 42 additions & 35 deletions src/execute/executeValidatorReward.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,17 @@ import {
isValidAddresses,
sortByTimeStamp,
} from '../utils';
import { convertAddressesToArray } from '../utils/convert';
import { getTotalSecondProcess } from '../utils/date';
import {
DEFAULT_LIST_PRICE,
HEADER_FOR_VALIDATOR_REWARD,
} from '../utils/google';
import { Subgraph } from '../utils/subgraph';
import { convertAddressesToArray } from '../utils/convert';
// main process
export const main = async (argv: validatorRewardArgs) => {
const startTimeProcess = Date.now();

// validate address
const addresses = convertAddressesToArray(argv.validator_addresses);
if (!isValidAddresses(addresses)) {
Expand Down Expand Up @@ -66,6 +69,8 @@ export const main = async (argv: validatorRewardArgs) => {
'commission-reward',
header,
);
const totalSecondsProcess = getTotalSecondProcess(startTimeProcess);
console.log(`==> ${totalSecondsProcess} seconds`);
};

const getHeader = (argv: validatorRewardArgs): string[] => {
Expand Down Expand Up @@ -122,42 +127,44 @@ const getDataExport = async (
subgraph: Subgraph,
argv: validatorRewardArgs,
): Promise<DataExport[]> => {
// Set the address to lowercase
const validator_addresses = convertAddressesToArray(argv.validator_addresses);

const resultsPromise = prepareData.map(async (item: PrepareData) => {
const results: DataExport[] = [];

for (const item of prepareData) {
const { oasPrices, timeData } = item;
const { block, epoch, timestamp } = timeData;
console.log('RUNNING EPOCH ', epoch);

const validatorResults = await Promise.all(
validator_addresses?.map(async (address: string) => {
const validatorAddress = address;
// Get totalStake of validator
const validatorStake = await subgraph.getValidatorTotalStake(
epoch,
block,
validatorAddress,
);

// Format data
const { rowData } = getAdditionalDataForCommissionReward(
oasPrices,
validatorStake,
timeData,
argv.price,
validatorAddress,
);
return {
rowData,
timestamp,
};
}),
);

return validatorResults;
});

const results = await Promise.all(resultsPromise);
return results.flat();
const startTimeProcess = Date.now();
console.log('PROCESSING WITH EPOCH', epoch);

const promises = validator_addresses.map(async (address: string) => {
const validatorAddress = address;
const validatorStake = await subgraph.getValidatorTotalStake(
epoch,
block,
validatorAddress,
);

const { rowData } = getAdditionalDataForCommissionReward(
oasPrices,
validatorStake,
timeData,
argv.price,
validatorAddress,
);

return {
rowData,
timestamp,
};
});

const validatorResults = await Promise.all(promises);

results.push(...validatorResults);
const totalSecondsEpoch = getTotalSecondProcess(startTimeProcess);
console.info(`--> Epoch ${epoch} took ${totalSecondsEpoch} seconds`);
}

return results;
};
4 changes: 4 additions & 0 deletions src/module/RewardStakes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,8 @@ export const handleExport = async (
fileName: string,
header: string[],
) => {
console.info(`Start handle export`);

let doc: GoogleSpreadsheet;
if (isOnline) {
doc = await getSpreadSheet();
Expand All @@ -168,7 +170,9 @@ export const handleExport = async (
? await exportCsvOnline(doc, rowData, timestamp, header)
: await exportCsvLocal(rowData, header, fileName, output);
await sleep(1500);
console.log(`Exported: ${i + 1}/${array.length}`);
}
console.log('Export process complete!');
};

export const getAdditionalDataForCommissionReward = (
Expand Down
4 changes: 4 additions & 0 deletions src/utils/date.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@ export const getTime = (timestamp: Date) => {
export const getMonthDate = (timestamp: Date) => {
return dateParts(timestamp).slice(0, 2).join('');
};

export const getTotalSecondProcess = (startTimeProcess: number) => {
return ((Date.now() - startTimeProcess) / 1000).toFixed(2);
};

0 comments on commit d970989

Please sign in to comment.