Merge pull request #2039 from mempool/nymkappa/bugfix/use-core-for-block-list
Use bitcoin core to fetch blocks
This commit is contained in:
		
						commit
						69623d71b2
					
				| @ -168,7 +168,7 @@ class Blocks { | ||||
|       blockExtended.extras.avgFeeRate = stats.avgfeerate; | ||||
|     } | ||||
| 
 | ||||
|     if (['mainnet', 'testnet', 'signet', 'regtest'].includes(config.MEMPOOL.NETWORK)) { | ||||
|     if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) { | ||||
|       let pool: PoolTag; | ||||
|       if (blockExtended.extras?.coinbaseTx !== undefined) { | ||||
|         pool = await this.$findBlockMiner(blockExtended.extras?.coinbaseTx); | ||||
| @ -405,7 +405,7 @@ class Blocks { | ||||
| 
 | ||||
|         if (blockHeightTip >= 2016) { | ||||
|           const previousPeriodBlockHash = await bitcoinApi.$getBlockHash(blockHeightTip - heightDiff - 2016); | ||||
|           const previousPeriodBlock = await bitcoinApi.$getBlock(previousPeriodBlockHash); | ||||
|           const previousPeriodBlock = await bitcoinClient.getBlock(previousPeriodBlockHash) | ||||
|           this.previousDifficultyRetarget = (block.difficulty - previousPeriodBlock.difficulty) / previousPeriodBlock.difficulty * 100; | ||||
|           logger.debug(`Initial difficulty adjustment data set.`); | ||||
|         } | ||||
| @ -527,13 +527,15 @@ class Blocks { | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     const block = await bitcoinApi.$getBlock(hash); | ||||
|     let block = await bitcoinClient.getBlock(hash); | ||||
| 
 | ||||
|     // Not Bitcoin network, return the block as it
 | ||||
|     if (['mainnet', 'testnet', 'signet'].includes(config.MEMPOOL.NETWORK) === false) { | ||||
|       return block; | ||||
|     } | ||||
| 
 | ||||
|     block = prepareBlock(block); | ||||
| 
 | ||||
|     // Bitcoin network, add our custom data on top
 | ||||
|     const transactions = await this.$getTransactionsExtended(hash, block.height, true); | ||||
|     const blockExtended = await this.$getBlockExtended(block, transactions); | ||||
| @ -577,7 +579,6 @@ class Blocks { | ||||
|   } | ||||
| 
 | ||||
|   public async $getBlocks(fromHeight?: number, limit: number = 15): Promise<BlockExtended[]> { | ||||
|     try { | ||||
|     let currentHeight = fromHeight !== undefined ? fromHeight : this.getCurrentBlockHeight(); | ||||
|     const returnBlocks: BlockExtended[] = []; | ||||
| 
 | ||||
| @ -607,7 +608,7 @@ class Blocks { | ||||
|         block = await this.$indexBlock(currentHeight); | ||||
|         returnBlocks.push(block); | ||||
|       } else if (nextHash != null) { | ||||
|           block = prepareBlock(await bitcoinApi.$getBlock(nextHash)); | ||||
|         block = prepareBlock(await bitcoinClient.getBlock(nextHash)); | ||||
|         nextHash = block.previousblockhash; | ||||
|         returnBlocks.push(block); | ||||
|       } | ||||
| @ -615,9 +616,6 @@ class Blocks { | ||||
|     } | ||||
| 
 | ||||
|     return returnBlocks; | ||||
|     } catch (e) { | ||||
|       throw e; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   public getLastDifficultyAdjustmentTime(): number { | ||||
|  | ||||
| @ -3,14 +3,14 @@ import { BlockExtended } from '../mempool.interfaces'; | ||||
| export function prepareBlock(block: any): BlockExtended { | ||||
|   return <BlockExtended>{ | ||||
|     id: block.id ?? block.hash, // hash for indexed block
 | ||||
|     timestamp: block.timestamp ?? block.blockTimestamp, // blockTimestamp for indexed block
 | ||||
|     timestamp: block.timestamp ?? block.time ?? block.blockTimestamp, // blockTimestamp for indexed block
 | ||||
|     height: block.height, | ||||
|     version: block.version, | ||||
|     bits: block.bits, | ||||
|     bits: (typeof block.bits === 'string' ? parseInt(block.bits, 16): block.bits), | ||||
|     nonce: block.nonce, | ||||
|     difficulty: block.difficulty, | ||||
|     merkle_root: block.merkle_root, | ||||
|     tx_count: block.tx_count, | ||||
|     merkle_root: block.merkle_root ?? block.merkleroot, | ||||
|     tx_count: block.tx_count ?? block.nTx, | ||||
|     size: block.size, | ||||
|     weight: block.weight, | ||||
|     previousblockhash: block.previousblockhash, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user