From: Chris Duncan Date: Tue, 22 Apr 2025 20:49:36 +0000 (-0700) Subject: Use switch-case to evaluate NanoPow work call instead of repeatedly serializing argum... X-Git-Url: https://zoso.dev/?a=commitdiff_plain;h=4e7617f1bff82c2df9dabcb4bb908600e07b1ef0;p=nano-pow.git Use switch-case to evaluate NanoPow work call instead of repeatedly serializing arguments. --- diff --git a/src/bin/server.ts b/src/bin/server.ts index a17fafc..58808cb 100755 --- a/src/bin/server.ts +++ b/src/bin/server.ts @@ -119,14 +119,25 @@ async function respond (res: http.ServerResponse, dataBuffer: Buffer[]): Promise effort: CONFIG.EFFORT, difficulty } - const args = [] - if (work) args.push(work) - args.push(hash) - args.push(options) - response = JSON.stringify(await page.evaluate(async (action: string, args: (string | NanoPowOptions)[]): Promise => { - if (window.NanoPow == null) throw new Error('NanoPow not found') - return await window.NanoPow[action](...args) - }, action, args)) + switch (action) { + case ('work_generate'): { + response = JSON.stringify(await page.evaluate(async (hash: string, options: NanoPowOptions): Promise => { + if (window.NanoPow == null) throw new Error('NanoPow not found') + return await window.NanoPow.work_generate(hash, options) + }, hash, options)) + break + } + case ('work_validate'): { + response = JSON.stringify(await page.evaluate(async (work: string, hash: string, options: NanoPowOptions): Promise => { + if (window.NanoPow == null) throw new Error('NanoPow not found') + return await window.NanoPow.work_validate(work, hash, options) + }, work, hash, options)) + break + } + default: { + throw new Error('Action must be work_generate or work_validate.') + } + } statusCode = 200 } catch (err) { log(err)