mirror of
https://github.com/mempool/mempool.git
synced 2025-01-18 05:12:35 +01:00
parent
8208bbf0b7
commit
8c29395533
@ -53,18 +53,25 @@ class WebsocketHandler {
|
|||||||
if (parsedMessage['watch-mempool']) {
|
if (parsedMessage['watch-mempool']) {
|
||||||
const tx = memPool.getMempool()[client['track-tx']];
|
const tx = memPool.getMempool()[client['track-tx']];
|
||||||
if (tx) {
|
if (tx) {
|
||||||
if (config.MEMPOOL.BACKEND !== 'esplora') {
|
if (config.MEMPOOL.BACKEND === 'esplora') {
|
||||||
|
response['tx'] = tx;
|
||||||
|
} else {
|
||||||
|
// tx.prevouts is missing from transactions when in bitcoind mode
|
||||||
try {
|
try {
|
||||||
const fullTx = await transactionUtils.$getTransactionExtended(tx.txid, true);
|
const fullTx = await transactionUtils.$getTransactionExtended(tx.txid, true);
|
||||||
response['tx'] = fullTx;
|
response['tx'] = fullTx;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.debug('Error finding transaction in mempool: ' + e.message || e);
|
logger.debug('Error finding transaction: ' + e.message || e);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
response['tx'] = tx;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
client['track-mempool-tx'] = parsedMessage['track-tx'];
|
try {
|
||||||
|
const fullTx = await transactionUtils.$getTransactionExtended(client['track-tx'], true);
|
||||||
|
response['tx'] = fullTx;
|
||||||
|
} catch (e) {
|
||||||
|
logger.debug('Error finding transaction. ' + e.message || e);
|
||||||
|
client['track-mempool-tx'] = parsedMessage['track-tx'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -25,6 +25,7 @@ export class WebsocketService {
|
|||||||
private goneOffline = false;
|
private goneOffline = false;
|
||||||
private lastWant: string | null = null;
|
private lastWant: string | null = null;
|
||||||
private isTrackingTx = false;
|
private isTrackingTx = false;
|
||||||
|
private trackingTxId: string;
|
||||||
private latestGitCommit = '';
|
private latestGitCommit = '';
|
||||||
private onlineCheckTimeout: number;
|
private onlineCheckTimeout: number;
|
||||||
private onlineCheckTimeoutTwo: number;
|
private onlineCheckTimeoutTwo: number;
|
||||||
@ -97,6 +98,9 @@ export class WebsocketService {
|
|||||||
if (this.lastWant) {
|
if (this.lastWant) {
|
||||||
this.want(JSON.parse(this.lastWant), true);
|
this.want(JSON.parse(this.lastWant), true);
|
||||||
}
|
}
|
||||||
|
if (this.isTrackingTx) {
|
||||||
|
this.startMultiTrackTransaction(this.trackingTxId);
|
||||||
|
}
|
||||||
this.stateService.connectionState$.next(2);
|
this.stateService.connectionState$.next(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,11 +123,13 @@ export class WebsocketService {
|
|||||||
}
|
}
|
||||||
this.websocketSubject.next({ 'track-tx': txId });
|
this.websocketSubject.next({ 'track-tx': txId });
|
||||||
this.isTrackingTx = true;
|
this.isTrackingTx = true;
|
||||||
|
this.trackingTxId = txId;
|
||||||
}
|
}
|
||||||
|
|
||||||
startMultiTrackTransaction(txId: string) {
|
startMultiTrackTransaction(txId: string) {
|
||||||
this.websocketSubject.next({ 'track-tx': txId, 'watch-mempool': true });
|
this.websocketSubject.next({ 'track-tx': txId, 'watch-mempool': true });
|
||||||
this.isTrackingTx = true;
|
this.isTrackingTx = true;
|
||||||
|
this.trackingTxId = txId;
|
||||||
}
|
}
|
||||||
|
|
||||||
stopTrackingTransaction() {
|
stopTrackingTransaction() {
|
||||||
|
Loading…
Reference in New Issue
Block a user