From 152d2c364bb0e8dbfe0445fea16e79797db5819d Mon Sep 17 00:00:00 2001 From: junderw Date: Sat, 24 Jun 2023 11:40:25 -0700 Subject: [PATCH] Update TS side --- backend/src/api/mempool-blocks.ts | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/backend/src/api/mempool-blocks.ts b/backend/src/api/mempool-blocks.ts index b82946a9e..ed8fbb172 100644 --- a/backend/src/api/mempool-blocks.ts +++ b/backend/src/api/mempool-blocks.ts @@ -1,3 +1,4 @@ +import * as napiAddon from '../../rust-gbt'; import logger from '../logger'; import { MempoolBlock, MempoolTransactionExtended, TransactionStripped, MempoolBlockWithTransactions, MempoolBlockDelta, Ancestor, CompactThreadTransaction, EffectiveFeeStats, AuditTransaction } from '../mempool.interfaces'; import { Common, OnlineFeeStatsCalculator } from './common'; @@ -5,8 +6,6 @@ import config from '../config'; import { Worker } from 'worker_threads'; import path from 'path'; -const neonAddon = require('../../rust-gbt'); - class MempoolBlocks { private mempoolBlocks: MempoolBlockWithTransactions[] = []; private mempoolBlockDeltas: MempoolBlockDelta[] = []; @@ -342,7 +341,14 @@ class MempoolBlocks { // run the block construction algorithm in a separate thread, and wait for a result try { - const { blocks, rates, clusters } = this.convertNeonResultTxids(await new Promise((resolve) => { neonAddon.make(mempoolBuffer, resolve); })); + const { blocks, rates, clusters } = this.convertNapiResultTxids( + await new Promise((resolve) => { + napiAddon.make( + new Uint8Array(mempoolBuffer), + resolve, + ); + }) + ); this.rustInitialized = true; const processed = this.processBlockTemplates(newMempool, blocks, rates, clusters, saveResults); logger.debug(`RUST makeBlockTemplates completed in ${(Date.now() - start)/1000} seconds`); @@ -374,7 +380,15 @@ class MempoolBlocks { // run the block construction algorithm in a separate thread, and wait for a result try { - const { blocks, rates, clusters } = this.convertNeonResultTxids(await new Promise((resolve) => { neonAddon.update(addedBuffer, removedBuffer, resolve); })); + const { blocks, rates, clusters } = this.convertNapiResultTxids( + await new Promise((resolve) => { + napiAddon.update( + new Uint8Array(addedBuffer), + new Uint8Array(removedBuffer), + resolve, + ); + }) + ); this.processBlockTemplates(newMempool, blocks, rates, clusters, saveResults); logger.debug(`RUST updateBlockTemplates completed in ${(Date.now() - start)/1000} seconds`); } catch (e) { @@ -563,7 +577,7 @@ class MempoolBlocks { return { blocks: convertedBlocks, rates: convertedRates, clusters: convertedClusters } as { blocks: string[][], rates: { [root: string]: number }, clusters: { [root: string]: string[] }}; } - private convertNeonResultTxids({ blocks, rates, clusters }: { blocks: number[][], rates: number[][], clusters: number[][]}) + private convertNapiResultTxids({ blocks, rates, clusters }: { blocks: number[][], rates: number[][], clusters: number[][]}) : { blocks: string[][], rates: { [root: string]: number }, clusters: { [root: string]: string[] }} { const rateMap = new Map(); const clusterMap = new Map();