Save goggle flags in audit templates & block summaries
This commit is contained in:
		
							parent
							
								
									5b622c7786
								
							
						
					
					
						commit
						1507003c19
					
				@ -1,3 +1,4 @@
 | 
			
		||||
import { IBitcoinApi } from './bitcoin-api.interface';
 | 
			
		||||
import { IEsploraApi } from './esplora-api.interface';
 | 
			
		||||
 | 
			
		||||
export interface AbstractBitcoinApi {
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,7 @@ import config from '../config';
 | 
			
		||||
import bitcoinApi, { bitcoinCoreApi } from './bitcoin/bitcoin-api-factory';
 | 
			
		||||
import logger from '../logger';
 | 
			
		||||
import memPool from './mempool';
 | 
			
		||||
import { BlockExtended, BlockExtension, BlockSummary, PoolTag, TransactionExtended, TransactionStripped, TransactionMinerInfo, CpfpSummary, MempoolTransactionExtended } from '../mempool.interfaces';
 | 
			
		||||
import { BlockExtended, BlockExtension, BlockSummary, PoolTag, TransactionExtended, TransactionMinerInfo, CpfpSummary, MempoolTransactionExtended, TransactionClassified } from '../mempool.interfaces';
 | 
			
		||||
import { Common } from './common';
 | 
			
		||||
import diskCache from './disk-cache';
 | 
			
		||||
import transactionUtils from './transaction-utils';
 | 
			
		||||
@ -201,7 +201,8 @@ class Blocks {
 | 
			
		||||
        txid: tx.txid,
 | 
			
		||||
        vsize: tx.weight / 4,
 | 
			
		||||
        fee: tx.fee ? Math.round(tx.fee * 100000000) : 0,
 | 
			
		||||
        value: Math.round(tx.vout.reduce((acc, vout) => acc + (vout.value ? vout.value : 0), 0) * 100000000)
 | 
			
		||||
        value: Math.round(tx.vout.reduce((acc, vout) => acc + (vout.value ? vout.value : 0), 0) * 100000000),
 | 
			
		||||
        flags: 0,
 | 
			
		||||
      };
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
@ -214,7 +215,7 @@ class Blocks {
 | 
			
		||||
  public summarizeBlockTransactions(hash: string, transactions: TransactionExtended[]): BlockSummary {
 | 
			
		||||
    return {
 | 
			
		||||
      id: hash,
 | 
			
		||||
      transactions: Common.stripTransactions(transactions),
 | 
			
		||||
      transactions: Common.classifyTransactions(transactions),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -945,7 +946,7 @@ class Blocks {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public async $getStrippedBlockTransactions(hash: string, skipMemoryCache = false,
 | 
			
		||||
    skipDBLookup = false, cpfpSummary?: CpfpSummary, blockHeight?: number): Promise<TransactionStripped[]>
 | 
			
		||||
    skipDBLookup = false, cpfpSummary?: CpfpSummary, blockHeight?: number): Promise<TransactionClassified[]>
 | 
			
		||||
  {
 | 
			
		||||
    if (skipMemoryCache === false) {
 | 
			
		||||
      // Check the memory cache
 | 
			
		||||
@ -974,7 +975,8 @@ class Blocks {
 | 
			
		||||
            fee: tx.fee || 0,
 | 
			
		||||
            vsize: tx.vsize,
 | 
			
		||||
            value: Math.round(tx.vout.reduce((acc, vout) => acc + (vout.value ? vout.value : 0), 0)),
 | 
			
		||||
            rate: tx.effectiveFeePerVsize
 | 
			
		||||
            rate: tx.effectiveFeePerVsize,
 | 
			
		||||
            flags: tx.flags || Common.getTransactionFlags(tx),
 | 
			
		||||
          };
 | 
			
		||||
        }),
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,9 @@
 | 
			
		||||
import * as bitcoinjs from 'bitcoinjs-lib';
 | 
			
		||||
import { Request } from 'express';
 | 
			
		||||
import { Ancestor, CpfpInfo, CpfpSummary, CpfpCluster, EffectiveFeeStats, MempoolBlockWithTransactions, TransactionExtended, MempoolTransactionExtended, TransactionStripped, WorkingEffectiveFeeStats, TransactionClassified, TransactionFlags } from '../mempool.interfaces';
 | 
			
		||||
import { CpfpInfo, CpfpSummary, CpfpCluster, EffectiveFeeStats, MempoolBlockWithTransactions, TransactionExtended, MempoolTransactionExtended, TransactionStripped, WorkingEffectiveFeeStats, TransactionClassified, TransactionFlags } from '../mempool.interfaces';
 | 
			
		||||
import config from '../config';
 | 
			
		||||
import { NodeSocket } from '../repositories/NodesSocketsRepository';
 | 
			
		||||
import { isIP } from 'net';
 | 
			
		||||
import rbfCache from './rbf-cache';
 | 
			
		||||
import transactionUtils from './transaction-utils';
 | 
			
		||||
import { isPoint } from '../utils/secp256k1';
 | 
			
		||||
export class Common {
 | 
			
		||||
@ -349,14 +348,18 @@ export class Common {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static classifyTransaction(tx: TransactionExtended): TransactionClassified {
 | 
			
		||||
    const flags = this.getTransactionFlags(tx);
 | 
			
		||||
    const flags = Common.getTransactionFlags(tx);
 | 
			
		||||
    tx.flags = flags;
 | 
			
		||||
    return {
 | 
			
		||||
      ...this.stripTransaction(tx),
 | 
			
		||||
      ...Common.stripTransaction(tx),
 | 
			
		||||
      flags,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static classifyTransactions(txs: TransactionExtended[]): TransactionClassified[] {
 | 
			
		||||
    return txs.map(Common.classifyTransaction);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static stripTransaction(tx: TransactionExtended): TransactionStripped {
 | 
			
		||||
    return {
 | 
			
		||||
      txid: tx.txid,
 | 
			
		||||
@ -369,7 +372,7 @@ export class Common {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static stripTransactions(txs: TransactionExtended[]): TransactionStripped[] {
 | 
			
		||||
    return txs.map(this.stripTransaction);
 | 
			
		||||
    return txs.map(Common.stripTransaction);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static sleep$(ms: number): Promise<void> {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import { GbtGenerator, GbtResult, ThreadTransaction as RustThreadTransaction, ThreadAcceleration as RustThreadAcceleration } from 'rust-gbt';
 | 
			
		||||
import logger from '../logger';
 | 
			
		||||
import { MempoolBlock, MempoolTransactionExtended, TransactionStripped, MempoolBlockWithTransactions, MempoolBlockDelta, Ancestor, CompactThreadTransaction, EffectiveFeeStats, PoolTag, TransactionClassified } from '../mempool.interfaces';
 | 
			
		||||
import { MempoolBlock, MempoolTransactionExtended, MempoolBlockWithTransactions, MempoolBlockDelta, Ancestor, CompactThreadTransaction, EffectiveFeeStats, PoolTag, TransactionClassified } from '../mempool.interfaces';
 | 
			
		||||
import { Common, OnlineFeeStatsCalculator } from './common';
 | 
			
		||||
import config from '../config';
 | 
			
		||||
import { Worker } from 'worker_threads';
 | 
			
		||||
 | 
			
		||||
@ -280,7 +280,7 @@ export interface BlockExtended extends IEsploraApi.Block {
 | 
			
		||||
 | 
			
		||||
export interface BlockSummary {
 | 
			
		||||
  id: string;
 | 
			
		||||
  transactions: TransactionStripped[];
 | 
			
		||||
  transactions: TransactionClassified[];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AuditSummary extends BlockAudit {
 | 
			
		||||
@ -288,8 +288,8 @@ export interface AuditSummary extends BlockAudit {
 | 
			
		||||
  size?: number,
 | 
			
		||||
  weight?: number,
 | 
			
		||||
  tx_count?: number,
 | 
			
		||||
  transactions: TransactionStripped[];
 | 
			
		||||
  template?: TransactionStripped[];
 | 
			
		||||
  transactions: TransactionClassified[];
 | 
			
		||||
  template?: TransactionClassified[];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface BlockPrice {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import DB from '../database';
 | 
			
		||||
import logger from '../logger';
 | 
			
		||||
import { BlockSummary, TransactionStripped } from '../mempool.interfaces';
 | 
			
		||||
import { BlockSummary, TransactionClassified } from '../mempool.interfaces';
 | 
			
		||||
 | 
			
		||||
class BlocksSummariesRepository {
 | 
			
		||||
  public async $getByBlockId(id: string): Promise<BlockSummary | undefined> {
 | 
			
		||||
@ -17,7 +17,7 @@ class BlocksSummariesRepository {
 | 
			
		||||
    return undefined;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public async $saveTransactions(blockHeight: number, blockId: string, transactions: TransactionStripped[]): Promise<void> {
 | 
			
		||||
  public async $saveTransactions(blockHeight: number, blockId: string, transactions: TransactionClassified[]): Promise<void> {
 | 
			
		||||
    try {
 | 
			
		||||
      const transactionsStr = JSON.stringify(transactions);
 | 
			
		||||
      await DB.query(`
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user