Add fee delta to acceleration data

This commit is contained in:
natsoni 2024-07-25 11:52:55 +02:00
parent b3e59c06e9
commit 3d9133c47e
No known key found for this signature in database
GPG key ID: C65917583181743B
7 changed files with 13 additions and 1 deletions

View file

@ -165,6 +165,7 @@ class BitcoinRoutes {
acceleration: tx.acceleration, acceleration: tx.acceleration,
acceleratedBy: tx.acceleratedBy || undefined, acceleratedBy: tx.acceleratedBy || undefined,
acceleratedAt: tx.acceleratedAt || undefined, acceleratedAt: tx.acceleratedAt || undefined,
feeDelta: tx.feeDelta || undefined,
}); });
return; return;
} }

View file

@ -453,6 +453,7 @@ class MempoolBlocks {
mempoolTx.acceleration = true; mempoolTx.acceleration = true;
mempoolTx.acceleratedBy = isAcceleratedBy[txid] || acceleration?.pools; mempoolTx.acceleratedBy = isAcceleratedBy[txid] || acceleration?.pools;
mempoolTx.acceleratedAt = acceleration?.added; mempoolTx.acceleratedAt = acceleration?.added;
mempoolTx.feeDelta = acceleration?.feeDelta;
for (const ancestor of mempoolTx.ancestors || []) { for (const ancestor of mempoolTx.ancestors || []) {
if (!mempool[ancestor.txid].acceleration) { if (!mempool[ancestor.txid].acceleration) {
mempool[ancestor.txid].cpfpDirty = true; mempool[ancestor.txid].cpfpDirty = true;
@ -460,6 +461,7 @@ class MempoolBlocks {
mempool[ancestor.txid].acceleration = true; mempool[ancestor.txid].acceleration = true;
mempool[ancestor.txid].acceleratedBy = mempoolTx.acceleratedBy; mempool[ancestor.txid].acceleratedBy = mempoolTx.acceleratedBy;
mempool[ancestor.txid].acceleratedAt = mempoolTx.acceleratedAt; mempool[ancestor.txid].acceleratedAt = mempoolTx.acceleratedAt;
mempool[ancestor.txid].feeDelta = mempoolTx.feeDelta;
isAcceleratedBy[ancestor.txid] = mempoolTx.acceleratedBy; isAcceleratedBy[ancestor.txid] = mempoolTx.acceleratedBy;
} }
} else { } else {

View file

@ -823,6 +823,7 @@ class WebsocketHandler {
accelerated: mempoolTx.acceleration || undefined, accelerated: mempoolTx.acceleration || undefined,
acceleratedBy: mempoolTx.acceleratedBy || undefined, acceleratedBy: mempoolTx.acceleratedBy || undefined,
acceleratedAt: mempoolTx.acceleratedAt || undefined, acceleratedAt: mempoolTx.acceleratedAt || undefined,
feeDelta: mempoolTx.feeDelta || undefined,
}, },
accelerationPositions: memPool.getAccelerationPositions(mempoolTx.txid), accelerationPositions: memPool.getAccelerationPositions(mempoolTx.txid),
}; };
@ -864,6 +865,7 @@ class WebsocketHandler {
accelerated: mempoolTx.acceleration || undefined, accelerated: mempoolTx.acceleration || undefined,
acceleratedBy: mempoolTx.acceleratedBy || undefined, acceleratedBy: mempoolTx.acceleratedBy || undefined,
acceleratedAt: mempoolTx.acceleratedAt || undefined, acceleratedAt: mempoolTx.acceleratedAt || undefined,
feeDelta: mempoolTx.feeDelta || undefined,
}; };
if (!mempoolTx.cpfpChecked) { if (!mempoolTx.cpfpChecked) {
calculateMempoolTxCpfp(mempoolTx, newMempool); calculateMempoolTxCpfp(mempoolTx, newMempool);
@ -1138,6 +1140,7 @@ class WebsocketHandler {
accelerated: mempoolTx.acceleration || undefined, accelerated: mempoolTx.acceleration || undefined,
acceleratedBy: mempoolTx.acceleratedBy || undefined, acceleratedBy: mempoolTx.acceleratedBy || undefined,
acceleratedAt: mempoolTx.acceleratedAt || undefined, acceleratedAt: mempoolTx.acceleratedAt || undefined,
feeDelta: mempoolTx.feeDelta || undefined,
}, },
accelerationPositions: memPool.getAccelerationPositions(mempoolTx.txid), accelerationPositions: memPool.getAccelerationPositions(mempoolTx.txid),
}); });
@ -1160,6 +1163,7 @@ class WebsocketHandler {
accelerated: mempoolTx.acceleration || undefined, accelerated: mempoolTx.acceleration || undefined,
acceleratedBy: mempoolTx.acceleratedBy || undefined, acceleratedBy: mempoolTx.acceleratedBy || undefined,
acceleratedAt: mempoolTx.acceleratedAt || undefined, acceleratedAt: mempoolTx.acceleratedAt || undefined,
feeDelta: mempoolTx.feeDelta || undefined,
}; };
} }
} }

View file

@ -126,6 +126,7 @@ export interface TransactionExtended extends IEsploraApi.Transaction {
acceleration?: boolean; acceleration?: boolean;
acceleratedBy?: number[]; acceleratedBy?: number[];
acceleratedAt?: number; acceleratedAt?: number;
feeDelta?: number;
replacement?: boolean; replacement?: boolean;
uid?: number; uid?: number;
flags?: number; flags?: number;
@ -449,7 +450,7 @@ export interface OptimizedStatistic {
export interface TxTrackingInfo { export interface TxTrackingInfo {
replacedBy?: string, replacedBy?: string,
position?: { block: number, vsize: number, accelerated?: boolean, acceleratedBy?: number[], acceleratedAt?: number }, position?: { block: number, vsize: number, accelerated?: boolean, acceleratedBy?: number[], acceleratedAt?: number, feeDelta?: number },
cpfp?: { cpfp?: {
ancestors?: Ancestor[], ancestors?: Ancestor[],
bestDescendant?: Ancestor | null, bestDescendant?: Ancestor | null,
@ -462,6 +463,7 @@ export interface TxTrackingInfo {
accelerated?: boolean, accelerated?: boolean,
acceleratedBy?: number[], acceleratedBy?: number[],
acceleratedAt?: number, acceleratedAt?: number,
feeDelta?: number,
confirmed?: boolean confirmed?: boolean
} }

View file

@ -816,6 +816,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
this.tx.acceleration = cpfpInfo.acceleration; this.tx.acceleration = cpfpInfo.acceleration;
this.tx.acceleratedBy = cpfpInfo.acceleratedBy; this.tx.acceleratedBy = cpfpInfo.acceleratedBy;
this.tx.acceleratedAt = cpfpInfo.acceleratedAt; this.tx.acceleratedAt = cpfpInfo.acceleratedAt;
this.tx.feeDelta = cpfpInfo.feeDelta;
this.setIsAccelerated(firstCpfp); this.setIsAccelerated(firstCpfp);
} }

View file

@ -22,6 +22,7 @@ export interface Transaction {
acceleration?: boolean; acceleration?: boolean;
acceleratedBy?: number[]; acceleratedBy?: number[];
acceleratedAt?: number; acceleratedAt?: number;
feeDelta?: number;
deleteAfter?: number; deleteAfter?: number;
_unblinded?: any; _unblinded?: any;
_deduced?: boolean; _deduced?: boolean;

View file

@ -31,6 +31,7 @@ export interface CpfpInfo {
acceleration?: boolean; acceleration?: boolean;
acceleratedBy?: number[]; acceleratedBy?: number[];
acceleratedAt?: number; acceleratedAt?: number;
feeDelta?: number;
} }
export interface RbfInfo { export interface RbfInfo {