coinbase working

This commit is contained in:
Ben Wilson 2023-06-17 16:52:28 -04:00
parent 2b9a4f3d85
commit c167fe9517
2 changed files with 7 additions and 8 deletions

View File

@ -102,19 +102,20 @@ export class MiningJob {
private createCoinbaseTransaction(addresses: AddressObject[], blockHeight: number, reward: number): { coinbasePart1: string, coinbasePart2: string } {
// Generate coinbase script
const blockHeightScript = `03${blockHeight.toString(16).padStart(8, '0')}`;
const inputScript = `54696d652026204865616c74682021`;
// Create coinbase transaction
const endOfInput = 'ffffffff';
const outputIndex = 'ffffffff';
const sequence = 'ffffffff';
const lockTime = '00000000';
const version = '01000000';
const inputCount = '01';
const fakeCoinbaseInput = '0000000000000000000000000000000000000000000000000000000000000000';
const inputScriptBytes = ((blockHeightScript.length + inputScript.length + lockTime.length) / 2).toString(16).padStart(2, '0');
const inputScriptBytes = ((blockHeightScript.length + 16) / 2).toString(16).padStart(2, '0');
const inputTransaction = inputCount + fakeCoinbaseInput + endOfInput + inputScriptBytes + blockHeightScript + inputScript + lockTime;
const inputTransaction = inputCount + fakeCoinbaseInput + outputIndex + inputScriptBytes + blockHeightScript;
@ -141,8 +142,8 @@ export class MiningJob {
// Create outputs
const outputCountHex = addresses.length.toString(16).padStart(2, '0');
const coinbasePart1 = version + inputTransaction + endOfInput + outputCountHex;
const coinbasePart2 = outputs + lockTime;
const coinbasePart1 = version + inputTransaction;
const coinbasePart2 = sequence + outputCountHex + outputs + lockTime;
return { coinbasePart1, coinbasePart2 };
}

View File

@ -89,8 +89,6 @@ export class MiningSubmitMessage extends StratumBaseMessage {
}
header.writeUInt32LE(version, 0);
header.write(this.swapEndianWords(job.prevhash), 4, 'hex')