misc improvements from blitzpool

This commit is contained in:
Ben
2026-05-06 19:05:10 -04:00
parent 355437df3c
commit 216fa74d99
14 changed files with 526 additions and 101 deletions
+28
View File
@@ -82,4 +82,32 @@ describe('MiningJob', () => {
expect(updatedBlock.version).toBe(jobTemplate.block.version);
});
it('should expose coinbase helpers for downstream validation', () => {
const notify = JSON.parse(job.response(jobTemplate));
expect(job.getCoinbaseTxHex()).toContain(notify.params[2]);
expect(job.getCoinbasePrefixBuffer().toString('hex')).toBe(notify.params[2]);
expect(job.getCoinbaseSuffixBuffer().toString('hex')).toBe(notify.params[3]);
const clone = job.cloneCoinbaseTransaction();
const nonWitnessCoinbase = bitcoinjs.Transaction.fromHex(job.getCoinbaseTxHex());
expect(clone.ins[0].script.toString('hex')).toBe(nonWitnessCoinbase.ins[0].script.toString('hex'));
expect(clone.outs).toHaveLength(nonWitnessCoinbase.outs.length);
expect(clone.ins[0].witness[0]).toHaveLength(32);
});
it('should omit oversized pool identifiers from the coinbase script', () => {
jest.spyOn(console, 'warn').mockImplementation(() => undefined);
const oversizedIdentifier = 'x'.repeat(120);
const oversizedJob = new MiningJob(
bitcoinjs.networks.testnet,
'2',
[{ address: 'tb1qumezefzdeqqwn5zfvgdrhxjzc5ylr39uhuxcz4', percent: 100 }],
jobTemplate,
oversizedIdentifier
);
const coinbase = bitcoinjs.Transaction.fromHex(oversizedJob.getCoinbaseTxHex());
expect(coinbase.ins[0].script.toString()).not.toContain(oversizedIdentifier);
});
});