From 75a99568bfff64d5192df21f9093bc3e412b07fd Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Thu, 23 Feb 2023 08:50:30 +0900 Subject: [PATCH] Index coinbase signature in ascii --- backend/src/api/blocks.ts | 2 ++ backend/src/api/database-migration.ts | 1 + backend/src/mempool.interfaces.ts | 1 + backend/src/repositories/BlocksRepository.ts | 5 +++-- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/src/api/blocks.ts b/backend/src/api/blocks.ts index 8a11bccc5..3d33642ce 100644 --- a/backend/src/api/blocks.ts +++ b/backend/src/api/blocks.ts @@ -218,9 +218,11 @@ class Blocks { if (blk.extras.coinbaseTx.vout.length > 0) { blk.extras.coinbaseAddress = blk.extras.coinbaseTx.vout[0].scriptpubkey_address ?? null; blk.extras.coinbaseSignature = blk.extras.coinbaseTx.vout[0].scriptpubkey_asm ?? null; + blk.extras.coinbaseSignatureAscii = transactionUtils.hex2ascii(blk.extras.coinbaseTx.vin[0].scriptsig) ?? null; } else { blk.extras.coinbaseAddress = null; blk.extras.coinbaseSignature = null; + blk.extras.coinbaseSignatureAscii = null; } const header = await bitcoinClient.getBlockHeader(block.id, false); diff --git a/backend/src/api/database-migration.ts b/backend/src/api/database-migration.ts index 352abfbfe..c965ef420 100644 --- a/backend/src/api/database-migration.ts +++ b/backend/src/api/database-migration.ts @@ -767,6 +767,7 @@ class DatabaseMigration { ADD block_time int unsigned NOT NULL, ADD coinbase_address varchar(100) NULL, ADD coinbase_signature varchar(500) NULL, + ADD coinbase_signature_ascii varchar(500) NULL, ADD avg_tx_size double unsigned NOT NULL, ADD total_inputs int unsigned NOT NULL, ADD total_outputs int unsigned NOT NULL, diff --git a/backend/src/mempool.interfaces.ts b/backend/src/mempool.interfaces.ts index e139bde8f..cb95be98a 100644 --- a/backend/src/mempool.interfaces.ts +++ b/backend/src/mempool.interfaces.ts @@ -167,6 +167,7 @@ export interface BlockExtension { orphans?: OrphanedBlock[] | null; coinbaseAddress?: string | null; coinbaseSignature?: string | null; + coinbaseSignatureAscii?: string | null; virtualSize?: number; avgTxSize?: number; totalInputs?: number; diff --git a/backend/src/repositories/BlocksRepository.ts b/backend/src/repositories/BlocksRepository.ts index 1f244d7cd..e2362b67d 100644 --- a/backend/src/repositories/BlocksRepository.ts +++ b/backend/src/repositories/BlocksRepository.ts @@ -27,7 +27,7 @@ class BlocksRepository { coinbase_signature, utxoset_size, utxoset_change, avg_tx_size, total_inputs, total_outputs, total_input_amt, total_output_amt, fee_percentiles, segwit_total_txs, segwit_total_size, segwit_total_weight, - median_fee_amt + median_fee_amt, coinbase_signature_ascii ) VALUE ( ?, ?, FROM_UNIXTIME(?), ?, ?, ?, ?, ?, @@ -38,7 +38,7 @@ class BlocksRepository { ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, - ? + ?, ? )`; const params: any[] = [ @@ -79,6 +79,7 @@ class BlocksRepository { block.extras.segwitTotalSize, block.extras.segwitTotalWeight, block.extras.medianFeeAmt, + block.extras.coinbaseSignatureAscii, ]; await DB.query(query, params);