if ('error' in result) {
throw new Error('Failed to generate work', { cause: result.error })
}
+ const check = await NanoPow.work_validate(result.work, this.previous, { difficulty })
+ if ('error' in check) {
+ throw new Error('Failed to validate work generated', { cause: check.error })
+ }
+ if (check.valid === '0') {
+ throw new Error('Wwork generated is invalid', { cause: `${check.difficulty} < ${difficulty}` })
+ }
this.work = result.work
}
NANO_TEST_VECTORS.SEND_BLOCK.previous\r
)\r
await block.pow()\r
+\r
assert.equals(block.previous.length, 64)\r
assert.equals(block.work?.length, 16)\r
\r
.update(bytes)\r
.digest('hex')\r
.slice(8, 16)\r
+\r
assert.ok(parseInt(hash.slice(0, 2), 16) > 0xf0)\r
assert.equals(parseInt(hash.slice(2, 8), 16), 0xffffff)\r
})\r