mirror of
https://github.com/mempool/mempool.git
synced 2025-02-21 22:11:51 +01:00
Merge branch 'master' into nymkappa/feature/update-ln-dashboard
This commit is contained in:
commit
8edbd60bbf
4 changed files with 53 additions and 17 deletions
|
@ -4,6 +4,8 @@ import { XMLParser } from 'fast-xml-parser';
|
|||
import logger from '../../../logger';
|
||||
import fundingTxFetcher from './funding-tx-fetcher';
|
||||
import config from '../../../config';
|
||||
import { ILightningApi } from '../../../api/lightning/lightning-api.interface';
|
||||
import { isIP } from 'net';
|
||||
|
||||
const fsPromises = promises;
|
||||
|
||||
|
@ -48,7 +50,7 @@ class LightningStatsImporter {
|
|||
/**
|
||||
* Generate LN network stats for one day
|
||||
*/
|
||||
public async computeNetworkStats(timestamp: number, networkGraph): Promise<unknown> {
|
||||
public async computeNetworkStats(timestamp: number, networkGraph: ILightningApi.NetworkGraph): Promise<unknown> {
|
||||
// Node counts and network shares
|
||||
let clearnetNodes = 0;
|
||||
let torNodes = 0;
|
||||
|
@ -61,8 +63,8 @@ class LightningStatsImporter {
|
|||
let isUnnanounced = true;
|
||||
|
||||
for (const socket of (node.addresses ?? [])) {
|
||||
hasOnion = hasOnion || ['torv2', 'torv3'].includes(socket.network);
|
||||
hasClearnet = hasClearnet || ['ipv4', 'ipv6'].includes(socket.network);
|
||||
hasOnion = hasOnion || ['torv2', 'torv3'].includes(socket.network) || socket.addr.indexOf('onion') !== -1;
|
||||
hasClearnet = hasClearnet || ['ipv4', 'ipv6'].includes(socket.network) || [4, 6].includes(isIP(socket.addr.split(':')[0]));
|
||||
}
|
||||
if (hasOnion && hasClearnet) {
|
||||
clearnetTorNodes++;
|
||||
|
@ -127,22 +129,28 @@ class LightningStatsImporter {
|
|||
|
||||
if (channel.node1_policy !== undefined) { // Coming from the node
|
||||
for (const policy of [channel.node1_policy, channel.node2_policy]) {
|
||||
if (policy && policy.fee_rate_milli_msat < 5000) {
|
||||
if (policy && parseInt(policy.fee_rate_milli_msat, 10) < 5000) {
|
||||
avgFeeRate += parseInt(policy.fee_rate_milli_msat, 10);
|
||||
feeRates.push(parseInt(policy.fee_rate_milli_msat, 10));
|
||||
}
|
||||
if (policy && policy.fee_base_msat < 5000) {
|
||||
if (policy && parseInt(policy.fee_base_msat, 10) < 5000) {
|
||||
avgBaseFee += parseInt(policy.fee_base_msat, 10);
|
||||
baseFees.push(parseInt(policy.fee_base_msat, 10));
|
||||
}
|
||||
}
|
||||
} else { // Coming from the historical import
|
||||
// @ts-ignore
|
||||
if (channel.fee_rate_milli_msat < 5000) {
|
||||
// @ts-ignore
|
||||
avgFeeRate += parseInt(channel.fee_rate_milli_msat, 10);
|
||||
// @ts-ignore
|
||||
feeRates.push(parseInt(channel.fee_rate_milli_msat), 10);
|
||||
}
|
||||
}
|
||||
// @ts-ignore
|
||||
if (channel.fee_base_msat < 5000) {
|
||||
// @ts-ignore
|
||||
avgBaseFee += parseInt(channel.fee_base_msat, 10);
|
||||
// @ts-ignore
|
||||
baseFees.push(parseInt(channel.fee_base_msat), 10);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
|
|||
import { Env, StateService } from '../../services/state.service';
|
||||
import { Observable } from 'rxjs';
|
||||
import { LanguageService } from 'src/app/services/language.service';
|
||||
import { EnterpriseService } from 'src/app/services/enterprise.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-bisq-master-page',
|
||||
|
@ -18,6 +19,7 @@ export class BisqMasterPageComponent implements OnInit {
|
|||
constructor(
|
||||
private stateService: StateService,
|
||||
private languageService: LanguageService,
|
||||
private enterpriseService: EnterpriseService,
|
||||
) { }
|
||||
|
||||
ngOnInit() {
|
||||
|
|
|
@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
|
|||
import { Env, StateService } from '../../services/state.service';
|
||||
import { merge, Observable, of} from 'rxjs';
|
||||
import { LanguageService } from 'src/app/services/language.service';
|
||||
import { EnterpriseService } from 'src/app/services/enterprise.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-liquid-master-page',
|
||||
|
@ -20,6 +21,7 @@ export class LiquidMasterPageComponent implements OnInit {
|
|||
constructor(
|
||||
private stateService: StateService,
|
||||
private languageService: LanguageService,
|
||||
private enterpriseService: EnterpriseService,
|
||||
) { }
|
||||
|
||||
ngOnInit() {
|
||||
|
|
|
@ -24,16 +24,16 @@ export class EnterpriseService {
|
|||
this.subdomain = subdomain;
|
||||
this.fetchSubdomainInfo();
|
||||
this.disableSubnetworks();
|
||||
} else if (document.location.hostname === 'mempool.space') {
|
||||
} else {
|
||||
this.insertMatomo();
|
||||
}
|
||||
}
|
||||
|
||||
getSubdomain() {
|
||||
getSubdomain(): string {
|
||||
return this.subdomain;
|
||||
}
|
||||
|
||||
disableSubnetworks() {
|
||||
disableSubnetworks(): void {
|
||||
this.stateService.env.TESTNET_ENABLED = false;
|
||||
this.stateService.env.LIQUID_ENABLED = false;
|
||||
this.stateService.env.LIQUID_TESTNET_ENABLED = false;
|
||||
|
@ -41,7 +41,7 @@ export class EnterpriseService {
|
|||
this.stateService.env.BISQ_ENABLED = false;
|
||||
}
|
||||
|
||||
fetchSubdomainInfo() {
|
||||
fetchSubdomainInfo(): void {
|
||||
this.apiService.getEnterpriseInfo$(this.subdomain).subscribe((info) => {
|
||||
this.info = info;
|
||||
this.insertMatomo(info.site_id);
|
||||
|
@ -54,14 +54,38 @@ export class EnterpriseService {
|
|||
});
|
||||
}
|
||||
|
||||
insertMatomo(siteId = 5) {
|
||||
insertMatomo(siteId?: number): void {
|
||||
let statsUrl = '//stats.mempool.space/';
|
||||
if (this.document.location.hostname === 'liquid.network') {
|
||||
statsUrl = '//stats.liquid.network/';
|
||||
siteId = 8;
|
||||
} else if (this.document.location.hostname === 'bisq.markets') {
|
||||
statsUrl = '//stats.bisq.markets/';
|
||||
siteId = 7;
|
||||
|
||||
if (!siteId) {
|
||||
switch (this.document.location.hostname) {
|
||||
case 'mempool.space':
|
||||
statsUrl = '//stats.mempool.space/';
|
||||
siteId = 5;
|
||||
break;
|
||||
case 'mempool.ninja':
|
||||
statsUrl = '//stats.mempool.space/';
|
||||
siteId = 4;
|
||||
break;
|
||||
case 'liquid.network':
|
||||
siteId = 8;
|
||||
statsUrl = '//stats.liquid.network/';
|
||||
break;
|
||||
case 'liquid.place':
|
||||
siteId = 10;
|
||||
statsUrl = '//stats.liquid.network/';
|
||||
break;
|
||||
case 'bisq.markets':
|
||||
siteId = 7;
|
||||
statsUrl = '//stats.bisq.markets/';
|
||||
break;
|
||||
case 'bisq.ninja':
|
||||
statsUrl = '//stats.bisq.markets/';
|
||||
siteId = 11;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
|
|
Loading…
Add table
Reference in a new issue