From c167fe9517e026ae39261117dbfbcff1172677e1 Mon Sep 17 00:00:00 2001 From: Ben Wilson Date: Sat, 17 Jun 2023 16:52:28 -0400 Subject: [PATCH] coinbase working --- src/models/MiningJob.ts | 13 +++++++------ src/models/stratum-messages/MiningSubmitMessage.ts | 2 -- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/models/MiningJob.ts b/src/models/MiningJob.ts index a067657..00c5059 100644 --- a/src/models/MiningJob.ts +++ b/src/models/MiningJob.ts @@ -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 }; } diff --git a/src/models/stratum-messages/MiningSubmitMessage.ts b/src/models/stratum-messages/MiningSubmitMessage.ts index 8bfca3f..9719d70 100644 --- a/src/models/stratum-messages/MiningSubmitMessage.ts +++ b/src/models/stratum-messages/MiningSubmitMessage.ts @@ -89,8 +89,6 @@ export class MiningSubmitMessage extends StratumBaseMessage { } - - header.writeUInt32LE(version, 0); header.write(this.swapEndianWords(job.prevhash), 4, 'hex')