Audit Submission Value

A validation function is needed to verify the generated results. This function is passed to the task’s built-in validate node function and executed on each participating node.


The validateNode function contains the core logic of how a node's submission should be verified.
Update the validateNode function with the code block below:
* @description Using to validate an individual node. Returns true if node submission is valid
async function validateNode(submission_value) {
let vote;
console.log('SUBMISSION VALUE', submission_value);
const doodle = submission_value;
// check the google doodle
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('');
let bodyHTML = await page.evaluate(() => document.documentElement.outerHTML);
const $ = cheerio.load(bodyHTML);
let scrapedDoodle = $('.latest-doodle.on').find('div > div > a > img').attr('src');
if (scrapedDoodle.substring(0, 2) == '//') {
scrapedDoodle = scrapedDoodle.substring(2, scrapedDoodle.length);
// vote based on the scrapedDoodle
try {
if (scrapedDoodle == doodle) {
vote = true;
} else {
vote = false;
} catch (e) {
vote = false;
return vote;
In the code above, the validateNode function takes the submission value as a parameter, repeats the logic of fetching the latest doodle, and finally compares the latest doodle and the submission value. If they're a match, the node's submission is considered valid and the function returns true; otherwise the function returns false.


The auditTask function submits the validateNode function to K2 using the validateAndVoteOnNodes helper function.
No need to edit this function when creating a task