Submit Distribution List
generateDistributionList()
async function generateDistributionList(round) {
console.log("GenerateDistributionList called");
console.log("I am selected node");
// Write the logic to generate the distribution list here by introducing the rules of your choice
/* **** SAMPLE LOGIC FOR GENERATING DISTRIBUTION LIST ******/
let distributionList = {};
const taskAccountDataJSON = await namespaceWrapper.getTaskState();
const submissions = taskAccountDataJSON.submissions[round];
const submissions_audit_trigger =
taskAccountDataJSON.submissions_audit_trigger[round];
if (submissions == null) {
console.log("No submisssions found in N-2 round");
return distributionList;
} else {
const keys = Object.keys(submissions);
const values = Object.values(submissions);
const size = values.length;
console.log("Submissions from last round: ", keys, values, size);
for (let i = 0; i < size; i++) {
const candidatePublicKey = keys[i];
if (
submissions_audit_trigger &&
submissions_audit_trigger[candidatePublicKey]
) {
console.log(
submissions_audit_trigger[candidatePublicKey].votes,
"distributions_audit_trigger votes "
);
const votes = submissions_audit_trigger[candidatePublicKey].votes;
let numOfVotes = 0;
for (let index = 0; index < votes.length; index++) {
if (votes[i].is_valid) numOfVotes++;
else numOfVotes--;
}
if (numOfVotes < 0) continue;
}
distributionList[candidatePublicKey] = 1;
}
}
console.log("Distribution List", distributionList);
return distributionList;
}submitDistributionList()
Last updated