Merge branch 'master' into mononaut/non-esplora-inscription-goggles

This commit is contained in:
softsimon 2024-04-05 17:48:55 +09:00 committed by GitHub
commit 04f6490eeb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
62 changed files with 15333 additions and 5904 deletions

View File

@ -103,7 +103,7 @@ In particular, make sure:
- the correct Bitcoin Core RPC credentials are specified in `CORE_RPC`
- the correct `BACKEND` is specified in `MEMPOOL`:
- "electrum" if you're using [romanz/electrs](https://github.com/romanz/electrs) or [cculianu/Fulcrum](https://github.com/cculianu/Fulcrum)
- "esplora" if you're using [Blockstream/electrs](https://github.com/Blockstream/electrs)
- "esplora" if you're using [mempool/electrs](https://github.com/mempool/electrs)
- "none" if you're not using any Electrum Server
### 6. Run Mempool Backend

View File

@ -52,7 +52,7 @@ export class AccelerateFeeGraphComponent implements OnInit, OnChanges {
rate: option.rate,
style: this.getStyle(option.rate, maxRate, baseHeight),
class: 'max',
label: 'maximum',
label: $localize`maximum`,
active: option.index === this.maxRateIndex,
rateIndex: option.index,
fee: option.fee,
@ -63,7 +63,7 @@ export class AccelerateFeeGraphComponent implements OnInit, OnChanges {
rate: this.estimate.targetFeeRate,
style: this.getStyle(this.estimate.targetFeeRate, maxRate, baseHeight),
class: 'target',
label: 'next block',
label: $localize`:@@bdf0e930eb22431140a2eaeacd809cc5f8ebd38c:Next Block`.toLowerCase(),
fee: this.estimate.nextBlockFee - this.estimate.txSummary.effectiveFee
});
}

View File

@ -32,18 +32,16 @@
<div class="alert alert-mempool">You are currently on the waitlist</div>
</div>
<h5>Your transaction</h5>
<h5 i18n="accelerator.your-transaction">Your transaction</h5>
<div class="row">
<div class="col">
<small *ngIf="hasAncestors" class="form-text text-muted mb-2">
Plus {{ estimate.txSummary.ancestorCount - 1 }} unconfirmed ancestor{{ estimate.txSummary.ancestorCount > 2 ? 's' : ''}}.
<ng-container i18n="accelerator.plus-unconfirmed-ancestors">Plus {{ estimate.txSummary.ancestorCount - 1 }} unconfirmed ancestor(s)</ng-container>
</small>
<table class="table table-borderless table-border table-dark table-accelerator">
<tbody>
<tr class="group-first">
<td class="item">
Virtual size
</td>
<td class="item" i18n="transaction.vsize|Transaction Virtual Size">Virtual size</td>
<td style="text-align: end;" [innerHTML]="'&lrm;' + (estimate.txSummary.effectiveVsize | vbytes: 2)"></td>
</tr>
<tr class="info">
@ -52,9 +50,7 @@
</td>
</tr>
<tr>
<td class="item">
In-band fees
</td>
<td class="item" i18n="accelerator.in-band-fees">In-band fees</td>
<td style="text-align: end;">
{{ estimate.txSummary.effectiveFee | number : '1.0-0' }} <span class="symbol" i18n="shared.sats">sats</span>
</td>
@ -69,13 +65,10 @@
</div>
</div>
<br>
<h5>How much more are you willing to pay?</h5>
<h5 i18n="accelerator.pay-how-much">How much more are you willing to pay?</h5>
<div class="row">
<div class="col">
<small class="form-text text-muted mb-2">
Choose the maximum extra transaction fee you're willing to pay to get into the next block.<br>
If the estimated next block rate rises beyond this limit, we will automatically cancel your acceleration request.
</small>
<small class="form-text text-muted mb-2" i18n="accelerator.transaction-fee-description">Choose the maximum extra transaction fee you're willing to pay to get into the next block.</small>
<div class="form-group">
<div class="fee-card">
<div class="d-flex mb-0">
@ -99,9 +92,7 @@
<!-- ESTIMATED FEE -->
<ng-container>
<tr class="group-first">
<td class="item">
Next block market rate
</td>
<td class="item" i18n="accelerator.next-block-rate">Next block market rate</td>
<td class="amt" style="font-size: 16px">
{{ estimate.targetFeeRate | number : '1.0-0' }}
</td>
@ -109,7 +100,7 @@
</tr>
<tr class="info">
<td class="info">
<i><small>Estimated extra fee required</small></i>
<i><small i18n="accelerator.estimated-extra-fee-required">Estimated extra fee required</small></i>
</td>
<td class="amt">
{{ math.max(0, estimate.nextBlockFee - estimate.txSummary.effectiveFee) | number }}
@ -123,13 +114,11 @@
<!-- MEMPOOL BASE FEE -->
<tr>
<td class="item">
Mempool Accelerator™ fees
</td>
<td class="item" i18n="accelerator.mempool-accelerator-fees">Mempool Accelerator™ fees</td>
</tr>
<tr class="info">
<td class="info">
<i><small>Accelerator Service Fee</small></i>
<i><small i18n="accelerator.service-fee">Accelerator Service Fee</small></i>
</td>
<td class="amt">
+{{ estimate.mempoolBaseFee | number }}
@ -141,7 +130,7 @@
</tr>
<tr class="info group-last">
<td class="info">
<i><small>Transaction Size Surcharge</small></i>
<i><small i18n="accelerator.tx-size-surcharge">Transaction Size Surcharge</small></i>
</td>
<td class="amt">
+{{ estimate.vsizeFee | number }}
@ -156,7 +145,7 @@
<ng-container>
<tr class="group-first" style="border-top: 1px dashed grey; border-collapse: collapse;">
<td class="item">
<b style="background-color: #5E35B1" class="p-1 pl-0">Estimated acceleration cost</b>
<b style="background-color: #5E35B1" class="p-1 pl-0" i18n="accelerator.estimated-cost">Estimated acceleration cost</b>
</td>
<td class="amt">
<span style="background-color: #5E35B1" class="p-1 pl-0">
@ -170,7 +159,7 @@
</tr>
<tr class="info group-last" style="border-bottom: 1px solid lightgrey">
<td class="info" colspan=3>
<i><small>If your tx is accelerated to </small><small>{{ estimate.targetFeeRate | number : '1.0-0' }} <span class="symbol" i18n="shared.sat-vbyte|sat/vB">sat/vB</span></small></i>
<i><small><ng-container *ngTemplateOutlet="acceleratedTo; context: {$implicit: estimate.targetFeeRate }"></ng-container></small></i>
</td>
</tr>
</ng-container>
@ -179,7 +168,7 @@
<ng-container>
<tr class="group-first">
<td class="item">
<b style="background-color: #105fb0;" class="p-1 pl-0">Maximum acceleration cost</b>
<b style="background-color: #105fb0;" class="p-1 pl-0" i18n="accelerator.maximum-cost">Maximum acceleration cost</b>
</td>
<td class="amt">
<span style="background-color: #105fb0" class="p-1 pl-0">
@ -195,7 +184,7 @@
</tr>
<tr class="info group-last">
<td class="info" colspan=3>
<i><small>If your tx is accelerated to </small><small>~{{ ((estimate.txSummary.effectiveFee + userBid) / estimate.txSummary.effectiveVsize) | number : '1.0-0' }} <span class="symbol" i18n="shared.sat-vbyte|sat/vB">sat/vB</span></small></i>
<i><small><ng-container *ngTemplateOutlet="acceleratedTo; context: {$implicit: (estimate.txSummary.effectiveFee + userBid) / estimate.txSummary.effectiveVsize }"></ng-container></small></i>
</td>
</tr>
</ng-container>
@ -203,9 +192,7 @@
<!-- USER BALANCE -->
<ng-container *ngIf="isLoggedIn() && estimate.userBalance < maxCost">
<tr class="group-first group-last" style="border-top: 1px dashed grey">
<td class="item">
Available balance
</td>
<td class="item" i18n="accelerator.available-balance">Available balance</td>
<td class="amt">
{{ estimate.userBalance | number }}
</td>
@ -219,12 +206,12 @@
</ng-container>
<!-- LOGIN CTA -->
<ng-container *ngIf="stateService.isMempoolSpaceBuild && !isLoggedIn()">
<ng-container *ngIf="stateService.isMempoolSpaceBuild && !isLoggedIn() && paymentType === 'bitcoin'">
<tr class="group-first group-last" style="border-top: 1px dashed grey">
<td class="item"></td>
<td class="amt"></td>
<td class="units d-flex">
<a [routerLink]="['/login']" [queryParams]="{redirectTo: '/tx/' + tx.txid + '#accelerate'}" class="btn btn-purple flex-grow-1">Login</a>
<a [routerLink]="['/login']" [queryParams]="{redirectTo: '/tx/' + tx.txid + '#accelerate'}" class="btn btn-purple flex-grow-1" i18n="shared.sign-in">Sign In</a>
</td>
</tr>
</ng-container>
@ -233,7 +220,7 @@
<td class="item"></td>
<td class="amt"></td>
<td class="units d-flex">
<a [href]="'https://mempool.space/tx/' + tx.txid + '#accelerate'" class="btn btn-purple flex-grow-1">Accelerate on mempool.space</a>
<a [href]="'https://mempool.space/tx/' + tx.txid + '#accelerate'" class="btn btn-purple flex-grow-1" i18n="accelerator.accelerate-on-mempoolspace">Accelerate on mempool.space</a>
</td>
</tr>
</ng-container>
@ -242,13 +229,21 @@
</div>
</div>
<div class="row mb-3" *ngIf="isLoggedIn()">
<div class="row mb-3" *ngIf="isLoggedIn() && paymentType === 'bitcoin'">
<div class="col">
<div class="d-flex justify-content-end" *ngIf="user && estimate.hasAccess">
<button class="btn btn-sm btn-primary btn-success" style="width: 150px" (click)="accelerate()">Accelerate</button>
<button class="btn btn-sm btn-primary btn-success" style="width: 150px" (click)="accelerate()" i18n="transaction.accelerate|Accelerate button label">Accelerate</button>
</div>
</div>
</div>
<div class="row d-flex justify-content-end mr-1" style="height: 48px" *ngIf="!hideCashApp">
<div id="cash-app-pay" style="max-width: 320px" [style]="showSpinner ? 'opacity: 0' : 'opacity: 1'"></div>
<div *ngIf="showSpinner" class="d-flex align-items-center">
<span class="mr-2">Loading</span>
<div class="spinner-border text-light" style="width: 25px; height: 25px"></div>
</div>
</div>
</div>
</ng-container>
@ -257,4 +252,6 @@
<ng-template #loadingEstimate>
<div class="skeleton-loader"></div>
<br>
</ng-template>
</ng-template>
<ng-template #acceleratedTo let-i i18n="accelerator.accelerated-to-description">If your tx is accelerated to ~{{ i | number : '1.0-0' }} sat/vB</ng-template>

View File

@ -1,5 +1,4 @@
import { Component, OnInit, Input, OnDestroy, OnChanges, SimpleChanges, HostListener, ChangeDetectorRef } from '@angular/core';
import { ApiService } from '../../services/api.service';
import { Subscription, catchError, of, tap } from 'rxjs';
import { StorageService } from '../../services/storage.service';
import { Transaction } from '../../interfaces/electrs.interface';
@ -40,7 +39,7 @@ export const MAX_BID_RATIO = 4;
templateUrl: 'accelerate-preview.component.html',
styleUrls: ['accelerate-preview.component.scss']
})
export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges {
export class AcceleratePreviewComponent implements OnDestroy, OnChanges {
@Input() tx: Transaction | undefined;
@Input() scrollEvent: boolean;
@ -63,18 +62,38 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
maxRateOptions: RateOption[] = [];
// Cashapp payment
paymentType: 'bitcoin' | 'cashapp' = 'bitcoin';
cashAppSubscription: Subscription;
conversionsSubscription: Subscription;
payments: any;
showSpinner = false;
square: any;
cashAppPay: any;
hideCashApp = false;
constructor(
public stateService: StateService,
private servicesApiService: ServicesApiServices,
private storageService: StorageService,
private audioService: AudioService,
private cd: ChangeDetectorRef
) { }
) {
if (window.document.referrer === 'https://cash.app/') {
this.insertSquare();
this.paymentType = 'cashapp';
} else {
this.paymentType = 'bitcoin';
}
}
ngOnDestroy(): void {
if (this.estimateSubscription) {
this.estimateSubscription.unsubscribe();
}
if (this.cashAppPay) {
this.cashAppPay.destroy();
}
}
ngOnChanges(changes: SimpleChanges): void {
@ -83,69 +102,85 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
}
}
ngOnInit() {
ngAfterViewInit() {
this.showSpinner = true;
this.user = this.storageService.getAuth()?.user ?? null;
this.estimateSubscription = this.servicesApiService.estimate$(this.tx.txid).pipe(
tap((response) => {
if (response.status === 204) {
this.estimate = undefined;
this.error = `cannot_accelerate_tx`;
this.scrollToPreviewWithTimeout('mempoolError', 'center');
this.estimateSubscription.unsubscribe();
} else {
this.estimate = response.body;
if (!this.estimate) {
this.servicesApiService.setupSquare$().subscribe(ids => {
this.square = {
appId: ids.squareAppId,
locationId: ids.squareLocationId
};
this.estimateSubscription = this.servicesApiService.estimate$(this.tx.txid).pipe(
tap((response) => {
if (response.status === 204) {
this.estimate = undefined;
this.error = `cannot_accelerate_tx`;
this.scrollToPreviewWithTimeout('mempoolError', 'center');
this.estimateSubscription.unsubscribe();
}
if (this.estimate.hasAccess === true && this.estimate.userBalance <= 0) {
if (this.isLoggedIn()) {
this.error = `not_enough_balance`;
} else {
this.estimate = response.body;
if (!this.estimate) {
this.error = `cannot_accelerate_tx`;
this.scrollToPreviewWithTimeout('mempoolError', 'center');
this.estimateSubscription.unsubscribe();
}
if (this.paymentType === 'cashapp') {
this.estimate.userBalance = 999999999;
this.estimate.enoughBalance = true;
}
if (this.estimate.hasAccess === true && this.estimate.userBalance <= 0) {
if (this.isLoggedIn()) {
this.error = `not_enough_balance`;
this.scrollToPreviewWithTimeout('mempoolError', 'center');
}
}
this.hasAncestors = this.estimate.txSummary.ancestorCount > 1;
// Make min extra fee at least 50% of the current tx fee
this.minExtraCost = nextRoundNumber(Math.max(this.estimate.cost * 2, this.estimate.txSummary.effectiveFee));
this.maxRateOptions = [1, 2, 4].map((multiplier, index) => {
return {
fee: this.minExtraCost * multiplier,
rate: (this.estimate.txSummary.effectiveFee + (this.minExtraCost * multiplier)) / this.estimate.txSummary.effectiveVsize,
index,
};
});
this.minBidAllowed = this.minExtraCost * MIN_BID_RATIO;
this.defaultBid = this.minExtraCost * DEFAULT_BID_RATIO;
this.maxBidAllowed = this.minExtraCost * MAX_BID_RATIO;
this.userBid = this.defaultBid;
if (this.userBid < this.minBidAllowed) {
this.userBid = this.minBidAllowed;
} else if (this.userBid > this.maxBidAllowed) {
this.userBid = this.maxBidAllowed;
}
this.maxCost = this.userBid + this.estimate.mempoolBaseFee + this.estimate.vsizeFee;
if (!this.error) {
this.scrollToPreview('acceleratePreviewAnchor', 'start');
if (this.paymentType === 'cashapp') {
this.setupSquare();
}
}
}
this.hasAncestors = this.estimate.txSummary.ancestorCount > 1;
// Make min extra fee at least 50% of the current tx fee
this.minExtraCost = nextRoundNumber(Math.max(this.estimate.cost * 2, this.estimate.txSummary.effectiveFee));
this.maxRateOptions = [1, 2, 4].map((multiplier, index) => {
return {
fee: this.minExtraCost * multiplier,
rate: (this.estimate.txSummary.effectiveFee + (this.minExtraCost * multiplier)) / this.estimate.txSummary.effectiveVsize,
index,
};
});
this.minBidAllowed = this.minExtraCost * MIN_BID_RATIO;
this.defaultBid = this.minExtraCost * DEFAULT_BID_RATIO;
this.maxBidAllowed = this.minExtraCost * MAX_BID_RATIO;
this.userBid = this.defaultBid;
if (this.userBid < this.minBidAllowed) {
this.userBid = this.minBidAllowed;
} else if (this.userBid > this.maxBidAllowed) {
this.userBid = this.maxBidAllowed;
}
this.maxCost = this.userBid + this.estimate.mempoolBaseFee + this.estimate.vsizeFee;
if (!this.error) {
this.scrollToPreview('acceleratePreviewAnchor', 'start');
}
}
}),
catchError((response) => {
this.estimate = undefined;
this.error = response.error;
this.scrollToPreviewWithTimeout('mempoolError', 'center');
this.estimateSubscription.unsubscribe();
return of(null);
})
).subscribe();
}),
catchError((response) => {
this.estimate = undefined;
this.error = response.error;
this.scrollToPreviewWithTimeout('mempoolError', 'center');
this.estimateSubscription.unsubscribe();
return of(null);
})
).subscribe();
});
}
/**
@ -216,4 +251,112 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
onResize(): void {
this.isMobile = window.innerWidth <= 767.98;
}
/**
* CashApp payment
*/
setupSquare() {
const init = () => {
this.initSquare();
};
//@ts-ignore
if (!window.Square) {
console.warn('Square.js failed to load properly. Retrying in 1 second.');
setTimeout(init, 1000);
} else {
init();
}
}
async initSquare(): Promise<void> {
try {
//@ts-ignore
this.payments = window.Square.payments(this.square.appId, this.square.locationId)
await this.requestCashAppPayment();
} catch (e) {
console.error(e);
this.error = 'Error loading Square Payments';
return;
}
}
async requestCashAppPayment() {
if (this.cashAppSubscription) {
this.cashAppSubscription.unsubscribe();
}
if (this.conversionsSubscription) {
this.conversionsSubscription.unsubscribe();
}
this.hideCashApp = false;
this.conversionsSubscription = this.stateService.conversions$.subscribe(
async (conversions) => {
const maxCostUsd = this.maxCost / 100_000_000 * conversions.USD;
const paymentRequest = this.payments.paymentRequest({
countryCode: 'US',
currencyCode: 'USD',
total: {
amount: maxCostUsd.toString(),
label: 'Total',
pending: true,
productUrl: `https://mempool.space/tx/${this.tx.txid}`,
}
});
this.cashAppPay = await this.payments.cashAppPay(paymentRequest, {
redirectURL: `https://mempool.space/tx/${this.tx.txid}`,
referenceId: `accelerator-${this.tx.txid.substring(0, 15)}-${Math.round(new Date().getTime() / 1000)}`,
});
await this.cashAppPay.attach('#cash-app-pay');
this.showSpinner = false;
const that = this;
this.cashAppPay.addEventListener('ontokenization', function (event) {
const { tokenResult, error } = event.detail;
if (error) {
this.error = error;
} else if (tokenResult.status === 'OK') {
that.hideCashApp = true;
that.accelerationSubscription = that.servicesApiService.accelerateWithCashApp$(
that.tx.txid,
that.userBid,
tokenResult.token,
tokenResult.details.cashAppPay.cashtag,
tokenResult.details.cashAppPay.referenceId
).subscribe({
next: () => {
that.audioService.playSound('ascend-chime-cartoon');
that.showSuccess = true;
that.scrollToPreviewWithTimeout('successAlert', 'center');
that.estimateSubscription.unsubscribe();
},
error: (response) => {
if (response.status === 403 && response.error === 'not_available') {
that.error = 'waitlisted';
} else {
that.error = response.error;
}
that.scrollToPreviewWithTimeout('mempoolError', 'center');
}
});
}
});
}
);
}
insertSquare(): void {
let statsUrl = 'https://sandbox.web.squarecdn.com/v1/square.js';
if (document.location.hostname === 'mempool-staging.tk7.mempool.space' || document.location.hostname === 'mempool.space') {
statsUrl = 'https://web.squarecdn.com/v1/square.js';
}
(function() {
const d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
// @ts-ignore
g.type='text/javascript'; g.src=statsUrl; s.parentNode.insertBefore(g, s);
})();
}
}

View File

@ -1,5 +1,5 @@
<div class="container-lg widget-container" [class.widget]="widget" [class.full-height]="!widget">
<h1 *ngIf="!widget" class="float-left" i18n="master-page.blocks">Accelerations</h1>
<h1 *ngIf="!widget" class="float-left" i18n="accelerator.accelerations">Accelerations</h1>
<div *ngIf="!widget && isLoading" class="spinner-border ml-3" role="status"></div>
<div class="clearfix"></div>

View File

@ -38,7 +38,7 @@
<div class="card">
<div class="card-body pl-lg-3 pr-lg-3 pl-2 pr-2">
<a class="title-link" href="" [routerLink]="['/mempool-block/0' | relativeUrl]">
<h5 class="card-title d-inline" i18n="dashboard.mempool-goggles-accelerations">Mempool Goggles: Accelerations</h5>
<h5 class="card-title d-inline">Mempool Goggles&trade; : <ng-container i18n="accelerator.accelerations">Accelerations</ng-container></h5>
<span>&nbsp;</span>
<fa-icon [icon]="['fas', 'external-link-alt']" [fixedWidth]="true" style="vertical-align: 'text-top'; font-size: 13px; color: #4a68b9"></fa-icon>
</a>

View File

@ -13,7 +13,7 @@ import { ServicesApiServices } from '../../../services/services-api.service';
import { detectWebGL } from '../../../shared/graphs.utils';
const acceleratedColor: Color = hexToColor('8F5FF6');
const normalColors = mempoolFeeColors.map(hex => hexToColor(hex + '5F'));
const normalColors = mempoolFeeColors.map(hex => hexToColor(hex.slice(0,6) + '5F'));
interface AccelerationBlock extends BlockExtended {
accelerationCount: number,

View File

@ -1,10 +1,10 @@
<div class="block-filters" [class.filters-active]="activeFilters.length > 0" [class.any-mode]="filterMode === 'or'" [class.menu-open]="menuOpen" [class.small]="cssWidth < 500" [class.vsmall]="cssWidth < 400" [class.tiny]="cssWidth < 200">
<a *ngIf="menuOpen" [routerLink]="['/docs/faq' | relativeUrl]" fragment="how-do-mempool-goggles-work" class="info-badges" i18n-ngbTooltip="Mempool Goggles tooltip" ngbTooltip="select filter categories to highlight matching transactions">
<a *ngIf="menuOpen" [routerLink]="['/docs/faq' | relativeUrl]" fragment="how-do-mempool-goggles-work" class="info-badges" i18n-ngbTooltip="Mempool Goggles&trade; tooltip" ngbTooltip="select filter categories to highlight matching transactions">
<span class="badge badge-pill badge-warning beta" i18n="beta">beta</span>
<fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true" size="lg"></fa-icon>
</a>
<div class="filter-bar">
<button class="menu-toggle" (click)="menuOpen = !menuOpen" title="Mempool Goggles">
<button class="menu-toggle" (click)="menuOpen = !menuOpen" title="Mempool Goggles&trade;">
<app-svg-images name="goggles" width="100%" height="100%"></app-svg-images>
</button>
<div class="active-tags">
@ -27,10 +27,10 @@
</div>
</div>
<div class="filter-element">
<h5 i18n="mempool-goggles.gradient">Gradient</h5>
<h5 i18n="mempool-goggles.tint">Tint</h5>
<div class="btn-group btn-group-toggle">
<label class="btn btn-xs yellow mode-toggle" [class.active]="gradientMode === 'fee'">
<input type="radio" [value]="'fee'" fragment="default" (click)="setGradientMode('fee')"><ng-container i18n="mempool-goggles.default">Default</ng-container>
<input type="radio" [value]="'fee'" fragment="classic" (click)="setGradientMode('fee')"><ng-container i18n="mempool-goggles.classic">Classic</ng-container>
</label>
<label class="btn btn-xs blue mode-toggle" [class.active]="gradientMode === 'age'">
<input type="radio" [value]="'age'" fragment="age" (click)="setGradientMode('age')"><ng-container i18n="mempool-goggles.age">Age</ng-container>

View File

@ -549,7 +549,9 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On
}
getColorFunction(): ((tx: TxView) => Color) {
if (this.filterFlags) {
if (this.overrideColors) {
return this.overrideColors;
} else if (this.filterFlags) {
return this.getFilterColorFunction(this.filterFlags, this.gradientMode);
} else if (this.activeFilterFlags) {
return this.getFilterColorFunction(this.activeFilterFlags, this.gradientMode);

View File

@ -53,13 +53,13 @@
<td i18n="block.miner">Miner</td>
<td *ngIf="stateService.env.MINING_DASHBOARD">
<a [attr.data-cy]="'block-details-miner-badge'" placement="bottom" [routerLink]="['/mining/pool' | relativeUrl, block?.extras.pool.slug]" class="badge"
[class]="!block?.extras.pool.name || block?.extras.pool.name === 'Unknown' ? 'badge-secondary' : 'badge-primary'">
[class]="!block?.extras.pool.name || block?.extras.pool.slug === 'unknown' ? 'badge-secondary' : 'badge-primary'">
{{ block?.extras.pool.name }}
</a>
</td>
<td *ngIf="!stateService.env.MINING_DASHBOARD && stateService.env.BASE_MODULE === 'mempool'">
<span [attr.data-cy]="'block-details-miner-badge'" placement="bottom" class="badge"
[class]="!block?.extras.pool.name || block?.extras.pool.name === 'Unknown' ? 'badge-secondary' : 'badge-primary'">
[class]="!block?.extras.pool.name || block?.extras.pool.slug === 'unknown' ? 'badge-secondary' : 'badge-primary'">
{{ block?.extras.pool.name }}
</span>
</td>

View File

@ -182,13 +182,13 @@
<td i18n="block.miner">Miner</td>
<td *ngIf="stateService.env.MINING_DASHBOARD">
<a placement="bottom" [routerLink]="['/mining/pool' | relativeUrl, block.extras.pool.slug]" class="badge"
[class]="block.extras.pool.name === 'Unknown' ? 'badge-secondary' : 'badge-primary'">
[class]="block.extras.pool.slug === 'unknown' ? 'badge-secondary' : 'badge-primary'">
{{ block.extras.pool.name }}
</a>
</td>
<td *ngIf="!stateService.env.MINING_DASHBOARD && stateService.env.BASE_MODULE === 'mempool'">
<span placement="bottom" class="badge"
[class]="block.extras.pool.name === 'Unknown' ? 'badge-secondary' : 'badge-primary'">
[class]="block.extras.pool.slug === 'unknown' ? 'badge-secondary' : 'badge-primary'">
{{ block.extras.pool.name }}
</span>
</td>

View File

@ -7,7 +7,6 @@ import { EnterpriseService } from '../../services/enterprise.service';
import { NavigationService } from '../../services/navigation.service';
import { MenuComponent } from '../menu/menu.component';
import { StorageService } from '../../services/storage.service';
import { ApiService } from '../../services/api.service';
@Component({
selector: 'app-master-page',
@ -45,7 +44,6 @@ export class MasterPageComponent implements OnInit, OnDestroy {
private enterpriseService: EnterpriseService,
private navigationService: NavigationService,
private storageService: StorageService,
private apiService: ApiService,
private router: Router,
) { }

View File

@ -8,6 +8,7 @@
[showFilters]="showFilters"
[filterFlags]="filterFlags"
[filterMode]="filterMode"
[gradientMode]="gradientMode"
[excludeFilters]="['nonstandard']"
[overrideColors]="overrideColors"
(txClickEvent)="onTxClick($event)"

View File

@ -11,7 +11,7 @@ import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pi
import { Router } from '@angular/router';
import { Color } from '../block-overview-graph/sprite-types';
import TxView from '../block-overview-graph/tx-view';
import { FilterMode } from '../../shared/filters.utils';
import { FilterMode, GradientMode } from '../../shared/filters.utils';
@Component({
selector: 'app-mempool-block-overview',
@ -25,6 +25,7 @@ export class MempoolBlockOverviewComponent implements OnInit, OnDestroy, OnChang
@Input() overrideColors: ((tx: TxView) => Color) | null = null;
@Input() filterFlags: bigint | undefined = undefined;
@Input() filterMode: FilterMode = 'and';
@Input() gradientMode: GradientMode = 'fee';
@Output() txPreviewEvent = new EventEmitter<TransactionStripped | void>();
@ViewChild('blockGraph') blockGraph: BlockOverviewGraphComponent;

View File

@ -5,8 +5,7 @@
height: calc(100vh - 65px);
position: absolute;
top: 65px;
left: -250px;
transition: left 0.25s;
transition: 0.25s;
box-shadow: 5px 0px 30px 0px #000;
padding-bottom: 20px;
@media (max-width: 613px) {
@ -14,6 +13,14 @@
}
}
:host-context(.ltr-layout) .sidenav {
left: -250px;
}
:host-context(.rtl-layout) .sidenav {
right: -250px;
}
.ellipsis {
display: block;
overflow: hidden;
@ -26,11 +33,18 @@
}
.sidenav.open {
left: 0px;
display: block;
background-color: #1d1f31;
}
:host-context(.ltr-layout) .sidenav.open {
left: 0;
}
:host-context(.rtl-layout) .sidenav.open {
right: 0;
}
.sidenav a, button{
text-decoration: none;
color: lightgray;

View File

@ -175,13 +175,15 @@ export class PoolRankingComponent implements OnInit {
} as PieSeriesOption);
});
const percentage = totalShareOther.toFixed(2) + '%';
// 'Other'
data.push({
itemStyle: {
color: '#6b6b6b',
},
value: totalShareOther,
name: 'Other' + (isMobile() ? `` : ` (${totalShareOther.toFixed(2)}%)`),
name: $localize`Other (${percentage})`,
label: {
overflow: 'none',
color: '#b1b1b1',
@ -197,7 +199,6 @@ export class PoolRankingComponent implements OnInit {
},
borderColor: '#000',
formatter: () => {
const percentage = totalShareOther.toFixed(2) + '%';
const i = totalBlockOther.toString();
if (this.miningWindowPreference === '24h') {
return `<b style="color: white">` + $localize`Other (${percentage})` + `</b><br>` +

View File

@ -40,70 +40,45 @@
</div>
<div class="clearfix"></div>
<ng-template [ngIf]="!isLoadingTx && !error">
<ng-template [ngIf]="tx?.status?.confirmed" [ngIfElse]="unconfirmedTemplate">
<div class="box">
<div class="row">
@if (!error) {
<div class="box">
<div class="row">
@if (isMobile) {
<div class="col-sm">
<table class="table table-borderless table-striped">
<tbody>
<tr>
<td i18n="block.timestamp">Timestamp</td>
<td>
&lrm;{{ tx.status.block_time * 1000 | date:'yyyy-MM-dd HH:mm' }}
<div class="lg-inline">
<i class="symbol">(<app-time kind="since" [time]="tx.status.block_time" [fastRender]="true"></app-time>)</i>
</div>
</td>
</tr>
<ng-template [ngIf]="transactionTime > 0">
<tr>
<td i18n="transaction.confirmed|Transaction Confirmed state">Confirmed</td>
<td><app-time kind="span" [time]="tx.status.block_time - transactionTime" [fastRender]="true" [relative]="true"></app-time></td>
</tr>
</ng-template>
<tr *ngIf="network !== 'liquid' && network !== 'liquidtestnet' && featuresEnabled">
<td class="td-width" i18n="transaction.features|Transaction features">Features</td>
<td>
<app-tx-features [tx]="tx"></app-tx-features>
</td>
</tr>
<tr *ngIf="network === '' && auditStatus">
<td class="td-width" i18n="block.toggle-audit|Toggle Audit">Audit</td>
<td *ngIf="pool" class="wrap-cell">
<ng-container>
<span *ngIf="auditStatus.coinbase; else expected" class="badge badge-primary mr-1" i18n="transactions-list.coinbase">Coinbase</span>
<ng-template #expected><span *ngIf="auditStatus.expected; else seen" class="badge badge-success mr-1" i18n-ngbTooltip="Expected in block tooltip" ngbTooltip="This transaction was projected to be included in the block" placement="bottom" i18n="tx-features.tag.expected|Expected in Block">Expected in Block</span></ng-template>
<ng-template #seen><span *ngIf="auditStatus.seen; else notSeen" class="badge badge-success mr-1" i18n-ngbTooltip="Seen in mempool tooltip" ngbTooltip="This transaction was seen in the mempool prior to mining" placement="bottom" i18n="tx-features.tag.seen|Seen in Mempool">Seen in Mempool</span></ng-template>
<ng-template #notSeen><span *ngIf="!auditStatus.conflict" class="badge badge-warning mr-1" i18n-ngbTooltip="Not seen in mempool tooltip" ngbTooltip="This transaction was missing from our mempool prior to mining" placement="bottom" i18n="tx-features.tag.not-seen|Not seen in Mempool">Not seen in Mempool</span></ng-template>
<span *ngIf="auditStatus.added" class="badge badge-warning mr-1" i18n-ngbTooltip="Added transaction tooltip" ngbTooltip="This transaction may have been added out-of-band" placement="bottom" i18n="tx-features.tag.added|Added">Added</span>
<span *ngIf="auditStatus.prioritized" class="badge badge-warning mr-1" i18n-ngbTooltip="Prioritized transaction tooltip" ngbTooltip="This transaction may have been prioritized out-of-band" placement="bottom" i18n="tx-features.tag.prioritized|Prioritized">Prioritized</span>
<span *ngIf="auditStatus.conflict" class="badge badge-warning mr-1" i18n-ngbTooltip="Conflict in mempool tooltip" ngbTooltip="This transaction conflicted with another version in our mempool" placement="bottom" i18n="tx-features.tag.conflict|Conflict">Conflict</span>
</ng-container>
</td>
<td *ngIf="!pool">
<span class="skeleton-loader"></span>
</td>
</tr>
<ng-container *ngTemplateOutlet="goggles"></ng-container>
<ng-container *ngTemplateOutlet="detailsLeft"></ng-container>
<ng-container *ngTemplateOutlet="detailsRight"></ng-container>
</tbody>
</table>
</div>
} @else {
<div class="col-sm">
<table class="table table-borderless table-striped">
<tbody>
<ng-container *ngTemplateOutlet="detailsLeft"></ng-container>
</tbody>
</table>
</div>
<div class="col-sm">
<ng-container *ngTemplateOutlet="feeTable"></ng-container>
<table class="table table-borderless table-striped">
<tbody>
<ng-container *ngTemplateOutlet="detailsRight"></ng-container>
</tbody>
</table>
</div>
</div>
}
</div>
</div>
}
</ng-template>
<ng-template [ngIf]="!isLoadingTx && !error">
<!-- Accelerator -->
<ng-container *ngIf="!tx?.status?.confirmed && showAccelerationSummary">
<br>
<div class="title float-left">
<h2>Accelerate</h2>
<h2 i18n="transaction.accelerate|Accelerate button label">Accelerate</h2>
</div>
<button type="button" class="btn btn-outline-info accelerator-toggle btn-sm float-right" (click)="showAccelerationSummary = false" i18n="hide-accelerator">Hide accelerator</button>
<div class="clearfix"></div>
@ -113,69 +88,6 @@
</div>
</ng-container>
<ng-template #unconfirmedTemplate>
<div class="box">
<div class="row">
<div class="col-sm">
<table class="table table-borderless table-striped">
<tbody>
<ng-template [ngIf]="transactionTime !== 0">
<tr *ngIf="transactionTime === -1; else firstSeenTmpl">
<td><span class="skeleton-loader"></span></td>
<td><span class="skeleton-loader"></span></td>
</tr>
<ng-template #firstSeenTmpl>
<tr>
<td i18n="transaction.first-seen|Transaction first seen">First seen</td>
<td><i><app-time kind="since" [time]="transactionTime" [fastRender]="true"></app-time></i></td>
</tr>
</ng-template>
</ng-template>
<tr *ngIf="!replaced && !isCached">
<td class="td-width align-items-center align-middle" i18n="transaction.eta|Transaction ETA">ETA</td>
<td>
<ng-template [ngIf]="this.mempoolPosition?.block == null" [ngIfElse]="estimationTmpl">
<span class="skeleton-loader"></span>
</ng-template>
<ng-template #estimationTmpl>
<ng-template [ngIf]="this.mempoolPosition.block >= 7" [ngIfElse]="belowBlockLimit">
<span [class]="(acceleratorAvailable && accelerateCtaType === 'button') ? 'etaDeepMempool d-flex justify-content-end align-items-center' : ''">
<span i18n="transaction.eta.in-several-hours|Transaction ETA in several hours or more">In several hours (or more)</span>
<a *ngIf="!tx.acceleration && acceleratorAvailable && accelerateCtaType === 'button' && !tx?.acceleration" [href]="'/services/accelerator/accelerate?txid=' + tx.txid" class="btn btn-sm accelerateDeepMempool btn-small-height" i18n="transaction.accelerate|Accelerate button label" (click)="onAccelerateClicked()">Accelerate</a>
</span>
</ng-template>
<ng-template #belowBlockLimit>
<ng-template [ngIf]="network === 'liquid' || network === 'liquidtestnet'" [ngIfElse]="timeEstimateDefault">
<app-time kind="until" [time]="(60 * 1000 * this.mempoolPosition.block) + now" [fastRender]="false" [fixedRender]="true"></app-time>
</ng-template>
<ng-template #timeEstimateDefault>
<span class="eta justify-content-end" [class]="(acceleratorAvailable && accelerateCtaType === 'button') ? 'd-flex align-items-center' : ''">
<app-time kind="until" *ngIf="(da$ | async) as da;" [time]="da.adjustedTimeAvg * (this.mempoolPosition.block + 1) + now + da.timeOffset" [fastRender]="false" [fixedRender]="true"></app-time>
<a *ngIf="!tx.acceleration && acceleratorAvailable && accelerateCtaType === 'button' && !tx?.acceleration" [href]="'/services/accelerator/accelerate?txid=' + tx.txid" class="btn btn-sm accelerate btn-small-height" i18n="transaction.accelerate|Accelerate button label" (click)="onAccelerateClicked()">Accelerate</a>
</span>
</ng-template>
</ng-template>
</ng-template>
</td>
</tr>
<tr *ngIf="network !== 'liquid' && network !== 'liquidtestnet'" id="acceleratePreviewAnchor">
<td class="td-width" i18n="transaction.features|Transaction Features">Features</td>
<td>
<app-tx-features [tx]="tx"></app-tx-features>
</td>
</tr>
<ng-container *ngTemplateOutlet="goggles"></ng-container>
</tbody>
</table>
</div>
<div class="col-sm">
<ng-container *ngTemplateOutlet="feeTable"></ng-container>
</div>
</div>
</div>
</ng-template>
<ng-template [ngIf]="showCpfpDetails">
<br>
@ -364,42 +276,7 @@
</ng-template>
<ng-template [ngIf]="(isLoadingTx && !error) || loadingCachedTx">
<div class="box">
<div class="row">
<div class="col-sm">
<table class="table table-borderless table-striped">
<tbody>
<tr>
<td class="td-width"><span class="skeleton-loader"></span></td>
<td><span class="skeleton-loader"></span></td>
</tr>
<tr>
<td><span class="skeleton-loader"></span></td>
<td><span class="skeleton-loader"></span></td>
</tr>
</tbody>
</table>
</div>
<div class="col-sm">
<table class="table table-borderless table-striped">
<tbody>
<tr>
<td class="td-width"><span class="skeleton-loader"></span></td>
<td><span class="skeleton-loader"></span></td>
</tr>
<tr>
<td><span class="skeleton-loader"></span></td>
<td><span class="skeleton-loader"></span></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<br>
<ng-container *ngIf="flowEnabled">
<div class="title">
<h2 i18n="transaction.flow|Transaction flow">Flow</h2>
@ -525,65 +402,264 @@
</div>
<ng-template #feeTable>
<table class="table table-borderless table-striped">
<tbody>
<tr *ngIf="isMobile && (network === 'liquid' || network === 'liquidtestnet' || !featuresEnabled || network === '')"></tr>
<ng-template #detailsLeft>
@if (tx?.status?.confirmed) {
<ng-container *ngTemplateOutlet="timestampRow"></ng-container>
<ng-container *ngTemplateOutlet="confirmedAfterRow"></ng-container>
} @else {
<ng-container *ngTemplateOutlet="firstSeenRow"></ng-container>
<ng-container *ngTemplateOutlet="etaRow"></ng-container>
}
<ng-container *ngTemplateOutlet="featuresRow"></ng-container>
@if (tx?.status?.confirmed) {
<ng-container *ngTemplateOutlet="auditRow"></ng-container>
}
<ng-container *ngTemplateOutlet="gogglesRow"></ng-container>
</ng-template>
<ng-template #detailsRight>
<ng-container *ngTemplateOutlet="feeRow"></ng-container>
<ng-container *ngTemplateOutlet="feeRateRow"></ng-container>
<ng-container *ngTemplateOutlet="effectiveRateRow"></ng-container>
@if (tx?.status?.confirmed) {
<ng-container *ngTemplateOutlet="minerRow"></ng-container>
}
</ng-template>
<ng-template #timestampRow>
@if (!isLoadingTx) {
<tr>
<td i18n="block.timestamp">Timestamp</td>
<td>
&lrm;{{ tx.status.block_time * 1000 | date:'yyyy-MM-dd HH:mm' }}
<div class="lg-inline">
<i class="symbol">(<app-time kind="since" [time]="tx.status.block_time" [fastRender]="true"></app-time>)</i>
</div>
</td>
</tr>
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
</ng-template>
<ng-template #confirmedAfterRow>
@if (!isLoadingTx) {
@if (transactionTime > 0) {
<tr>
<td class="td-width" i18n="transaction.fee|Transaction fee">Fee</td>
<td>{{ tx.fee | number }} <span class="symbol" i18n="shared.sat|sat">sat</span> <span class="fiat"><app-fiat [blockConversion]="tx.price" [value]="tx.fee"></app-fiat></span></td>
<td i18n="transaction.confirmed|Transaction Confirmed state">Confirmed</td>
<td><app-time kind="span" [time]="tx.status.block_time - transactionTime" [fastRender]="true" [relative]="true"></app-time></td>
</tr>
}
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
</ng-template>
<ng-template #firstSeenRow>
@if (!isLoadingTx && transactionTime !== -1) {
<tr>
<td i18n="transaction.first-seen|Transaction first seen">First seen</td>
<td><i><app-time kind="since" [time]="transactionTime" [fastRender]="true"></app-time></i></td>
</tr>
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
</ng-template>
<ng-template #featuresRow>
@if (network !== 'liquid' && network !== 'liquidtestnet') {
@if (!isLoadingTx) {
@if (featuresEnabled) {
<tr>
<td class="td-width" i18n="transaction.features|Transaction features">Features</td>
<td>
<app-tx-features [tx]="tx"></app-tx-features>
</td>
</tr>
}
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
}
</ng-template>
<ng-template #auditRow>
@if (network === '') {
@if (!isLoadingTx) {
@if (auditStatus) {
<tr>
<td class="td-width" i18n="block.toggle-audit|Toggle Audit">Audit</td>
<td class="wrap-cell">
<ng-container>
@if (auditStatus.coinbase) {
<span class="badge badge-primary mr-1" i18n="transactions-list.coinbase">Coinbase</span>
} @else if (auditStatus.expected) {
<span class="badge badge-success mr-1" i18n-ngbTooltip="Expected in block tooltip" ngbTooltip="This transaction was projected to be included in the block" placement="bottom" i18n="tx-features.tag.expected|Expected in Block">Expected in Block</span>
} @else if (auditStatus.seen) {
<span class="badge badge-success mr-1" i18n-ngbTooltip="Seen in mempool tooltip" ngbTooltip="This transaction was seen in the mempool prior to mining" placement="bottom" i18n="tx-features.tag.seen|Seen in Mempool">Seen in Mempool</span>
} @else if (!auditStatus.conflict) {
<span class="badge badge-warning mr-1" i18n-ngbTooltip="Not seen in mempool tooltip" ngbTooltip="This transaction was missing from our mempool prior to mining" placement="bottom" i18n="tx-features.tag.not-seen|Not seen in Mempool">Not seen in Mempool</span>
}
@if (auditStatus.added) {
<span class="badge badge-warning mr-1" i18n-ngbTooltip="Added transaction tooltip" ngbTooltip="This transaction may have been added out-of-band" placement="bottom" i18n="tx-features.tag.added|Added">Added</span>
}
@if (auditStatus.prioritized) {
<span class="badge badge-warning mr-1" i18n-ngbTooltip="Prioritized transaction tooltip" ngbTooltip="This transaction may have been prioritized out-of-band" placement="bottom" i18n="tx-features.tag.prioritized|Prioritized">Prioritized</span>
}
@if (auditStatus.conflict) {
<span class="badge badge-warning mr-1" i18n-ngbTooltip="Conflict in mempool tooltip" ngbTooltip="This transaction conflicted with another version in our mempool" placement="bottom" i18n="tx-features.tag.conflict|Conflict">Conflict</span>
}
</ng-container>
</td>
</tr>
}
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
}
</ng-template>
<ng-template #etaRow>
@if (!isLoadingTx) {
@if (!replaced && !isCached) {
<tr>
<td i18n="transaction.fee-rate|Transaction fee rate">Fee rate</td>
<td class="td-width align-items-center align-middle" i18n="transaction.eta|Transaction ETA">ETA</td>
<td>
<app-fee-rate [fee]="tx.feePerVsize"></app-fee-rate>
<ng-template [ngIf]="tx?.status?.confirmed">
&nbsp;
<app-tx-fee-rating *ngIf="tx.fee && !hasEffectiveFeeRate && !accelerationInfo" [tx]="tx"></app-tx-fee-rating>
</ng-template>
@if (this.mempoolPosition?.block == null) {
<span class="skeleton-loader"></span>
} @else if (this.mempoolPosition.block >= 7) {
<span [class]="(acceleratorAvailable && accelerateCtaType === 'button') ? 'etaDeepMempool d-flex justify-content-end align-items-center' : ''">
<span i18n="transaction.eta.in-several-hours|Transaction ETA in several hours or more">In several hours (or more)</span>
@if (!tx.acceleration && acceleratorAvailable && accelerateCtaType === 'button' && !tx?.acceleration) {
<a [href]="'/services/accelerator/accelerate?txid=' + tx.txid" class="btn btn-sm accelerateDeepMempool btn-small-height" i18n="transaction.accelerate|Accelerate button label" (click)="onAccelerateClicked()">Accelerate</a>
}
</span>
} @else if (network === 'liquid' || network === 'liquidtestnet') {
<app-time kind="until" [time]="(60 * 1000 * this.mempoolPosition.block) + now" [fastRender]="false" [fixedRender]="true"></app-time>
} @else {
<span class="eta justify-content-end" [class]="(acceleratorAvailable && accelerateCtaType === 'button') ? 'd-flex align-items-center' : ''">
<app-time kind="until" *ngIf="(da$ | async) as da;" [time]="da.adjustedTimeAvg * (this.mempoolPosition.block + 1) + now + da.timeOffset" [fastRender]="false" [fixedRender]="true"></app-time>
@if (!tx.acceleration && acceleratorAvailable && accelerateCtaType === 'button' && !tx?.acceleration) {
<a [href]="'/services/accelerator/accelerate?txid=' + tx.txid" class="btn btn-sm accelerate btn-small-height" i18n="transaction.accelerate|Accelerate button label" (click)="onAccelerateClicked()">Accelerate</a>
}
</span>
}
</td>
</tr>
<tr *ngIf="(cpfpInfo && hasEffectiveFeeRate) || accelerationInfo">
<td *ngIf="tx.acceleration || accelerationInfo" i18n="transaction.accelerated-fee-rate|Accelerated transaction fee rate">Accelerated fee rate</td>
<td *ngIf="!(tx.acceleration || accelerationInfo)" i18n="transaction.effective-fee-rate|Effective transaction fee rate">Effective fee rate</td>
}
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
</ng-template>
<ng-template #gogglesRow>
@if (!isLoadingTx) {
@if (((auditStatus && auditStatus.accelerated) || accelerationInfo || (tx && tx.acceleration)) || filters.length) {
<tr>
<td class="td-width">
<span class="goggles-icon"><app-svg-images name="goggles" width="100%" height="100%"></app-svg-images></span>
</td>
<td class="wrap-cell">
@if ((auditStatus && auditStatus.accelerated) || accelerationInfo || (tx && tx.acceleration)) {
<span class="badge badge-accelerated mr-1" i18n="transaction.audit.accelerated">Accelerated</span>
}
<ng-container *ngFor="let filter of filters;">
<span class="badge badge-primary filter-tag mr-1">{{ filter.label }}</span>
</ng-container>
</td>
</tr>
}
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
</ng-template>
<ng-template #feeRow>
@if (!isLoadingTx) {
<tr>
<td class="td-width" i18n="transaction.fee|Transaction fee">Fee</td>
<td>{{ tx.fee | number }} <span class="symbol" i18n="shared.sat|sat">sat</span> <span class="fiat"><app-fiat [blockConversion]="tx.price" [value]="tx.fee"></app-fiat></span></td>
</tr>
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
</ng-template>
<ng-template #feeRateRow>
@if (!isLoadingTx) {
<tr>
<td i18n="transaction.fee-rate|Transaction fee rate">Fee rate</td>
<td>
<app-fee-rate [fee]="tx.feePerVsize"></app-fee-rate>
@if (tx?.status?.confirmed && tx.fee && !hasEffectiveFeeRate && !accelerationInfo) {
&nbsp;
<app-tx-fee-rating [tx]="tx"></app-tx-fee-rating>
}
</td>
</tr>
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
</ng-template>
<ng-template #effectiveRateRow>
@if (!isLoadingTx) {
@if ((cpfpInfo && hasEffectiveFeeRate) || accelerationInfo) {
<tr>
@if (tx.acceleration || accelerationInfo) {
<td i18n="transaction.accelerated-fee-rate|Accelerated transaction fee rate">Accelerated fee rate</td>
} @else {
<td i18n="transaction.effective-fee-rate|Effective transaction fee rate">Effective fee rate</td>
}
<td>
<div class="effective-fee-container">
<app-fee-rate *ngIf="accelerationInfo" [fee]="accelerationInfo.acceleratedFee" [weight]="accelerationInfo.effectiveVsize * 4"></app-fee-rate>
<app-fee-rate *ngIf="!accelerationInfo" [fee]="tx.effectiveFeePerVsize"></app-fee-rate>
@if (accelerationInfo) {
<app-fee-rate [fee]="accelerationInfo.acceleratedFee" [weight]="accelerationInfo.effectiveVsize * 4"></app-fee-rate>
} @else {
<app-fee-rate [fee]="tx.effectiveFeePerVsize"></app-fee-rate>
}
<ng-template [ngIf]="tx?.status?.confirmed || tx.acceleration || accelerationInfo">
<app-tx-fee-rating *ngIf="!(tx.acceleration || accelerationInfo) && (tx.fee || tx.effectiveFeePerVsize)" class="ml-2 mr-2 effective-fee-rating" [tx]="tx"></app-tx-fee-rating>
</ng-template>
@if (tx?.status?.confirmed && !tx.acceleration && !accelerationInfo && tx.fee && tx.effectiveFeePerVsize) {
<app-tx-fee-rating class="ml-2 mr-2 effective-fee-rating" [tx]="tx"></app-tx-fee-rating>
}
</div>
<button *ngIf="cpfpInfo?.bestDescendant || cpfpInfo?.descendants?.length || cpfpInfo?.ancestors?.length" type="button" class="btn btn-outline-info btn-sm btn-small-height float-right" (click)="showCpfpDetails = !showCpfpDetails">CPFP <fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true"></fa-icon></button>
@if (hasCpfp) {
<button type="button" class="btn btn-outline-info btn-sm btn-small-height float-right" (click)="showCpfpDetails = !showCpfpDetails">CPFP <fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true"></fa-icon></button>
}
</td>
</tr>
<tr *ngIf="network === '' && tx?.status?.confirmed">
<td class="td-width" i18n="block.miner">Miner</td>
<td *ngIf="pool" class="wrap-cell">
<a placement="bottom" [routerLink]="['/mining/pool' | relativeUrl, pool.slug]" class="badge mr-1"
[class]="pool.name === 'Unknown' ? 'badge-secondary' : 'badge-primary'">
{{ pool.name }}
</a>
</td>
<td *ngIf="!pool">
<span class="skeleton-loader"></span>
</td>
</tr>
</tbody>
</table>
}
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
</ng-template>
<ng-template #goggles>
<tr *ngIf="((auditStatus && auditStatus.accelerated) || accelerationInfo || (tx && tx.acceleration)) || filters.length">
<td class="td-width">
<span class="goggles-icon"><app-svg-images name="goggles" width="100%" height="100%"></app-svg-images></span>
</td>
<td class="wrap-cell">
<span *ngIf="((auditStatus && auditStatus.accelerated) || accelerationInfo || (tx && tx.acceleration))" class="badge badge-accelerated mr-1" i18n="transaction.audit.accelerated">Accelerated</span>
<ng-container *ngFor="let filter of filters;">
<span class="badge badge-primary filter-tag mr-1">{{ filter.label }}</span>
</ng-container>
</td>
</tr>
<ng-template #minerRow>
@if (network === '') {
@if (!isLoadingTx) {
<tr>
<td class="td-width" i18n="block.miner">Miner</td>
@if (pool) {
<td class="wrap-cell">
<a placement="bottom" [routerLink]="['/mining/pool' | relativeUrl, pool.slug]" class="badge mr-1"
[class]="pool.slug === 'unknown' ? 'badge-secondary' : 'badge-primary'">
{{ pool.name }}
</a>
</td>
} @else {
<td>
<span class="skeleton-loader"></span>
</td>
}
</tr>
} @else {
<ng-container *ngTemplateOutlet="skeletonDetailsRow"></ng-container>
}
}
</ng-template>
<ng-template #skeletonDetailsRow>
<tr>
<td><span class="skeleton-loader"></span></td>
</tr>
</ng-template>

View File

@ -87,6 +87,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
rbfReplaces: string[];
rbfInfo: RbfTree;
cpfpInfo: CpfpInfo | null;
hasCpfp: boolean = false;
accelerationInfo: Acceleration | null = null;
sigops: number | null;
adjustedVsize: number | null;
@ -491,10 +492,10 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
txFeePerVSize: tx.effectiveFeePerVsize,
mempoolPosition: this.mempoolPosition,
});
this.cpfpInfo = {
this.setCpfpInfo({
ancestors: tx.ancestors,
bestDescendant: tx.bestDescendant,
};
});
const hasRelatives = !!(tx.ancestors?.length || tx.bestDescendant);
this.hasEffectiveFeeRate = hasRelatives || (tx.effectiveFeePerVsize && (Math.abs(tx.effectiveFeePerVsize - tx.feePerVsize) > 0.01));
} else {
@ -646,6 +647,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
setCpfpInfo(cpfpInfo: CpfpInfo): void {
if (!cpfpInfo || !this.tx) {
this.cpfpInfo = null;
this.hasCpfp = false;
this.hasEffectiveFeeRate = false;
return;
}
@ -675,6 +677,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
this.sigops = this.cpfpInfo.sigops;
this.adjustedVsize = this.cpfpInfo.adjustedVsize;
}
this.hasCpfp =!!(this.cpfpInfo && (this.cpfpInfo.bestDescendant || this.cpfpInfo.descendants?.length || this.cpfpInfo.ancestors?.length));
this.hasEffectiveFeeRate = hasRelatives || (this.tx.effectiveFeePerVsize && (Math.abs(this.tx.effectiveFeePerVsize - this.tx.feePerVsize) > 0.01));
}

View File

@ -18,7 +18,7 @@
<div class="card graph-card">
<div class="card-body pl-lg-3 pr-lg-3 pl-2 pr-2">
<a class="title-link mb-0" style="margin-top: -2px" href="" [routerLink]="['/mempool-block/0' | relativeUrl]">
<h5 class="card-title d-inline"><span i18n="dashboard.mempool-goggles">Mempool Goggles</span>: {{ goggleCycle[goggleIndex].name }}</h5>
<h5 class="card-title d-inline"><span>Mempool Goggles&trade;</span> : {{ goggleCycle[goggleIndex].name }}</h5>
<span>&nbsp;</span>
<fa-icon [icon]="['fas', 'external-link-alt']" [fixedWidth]="true" style="vertical-align: text-top; font-size: 13px; color: #4a68b9"></fa-icon>
</a>
@ -35,6 +35,7 @@
[resolution]="goggleResolution"
[filterFlags]="goggleFlags"
[filterMode]="goggleMode"
[gradientMode]="gradientMode"
></app-mempool-block-overview>
</div>
</div>

View File

@ -75,14 +75,14 @@ export class DashboardComponent implements OnInit, OnDestroy, AfterViewInit {
goggleResolution = 82;
goggleCycle: { index: number, name: string, mode: FilterMode, filters: string[], gradient: GradientMode }[] = [
{ index: 0, name: $localize`:@@dfc3c34e182ea73c5d784ff7c8135f087992dac1:All`, mode: 'and', filters: [], gradient: 'fee' },
{ index: 0, name: $localize`:@@dfc3c34e182ea73c5d784ff7c8135f087992dac1:All`, mode: 'and', filters: [], gradient: 'age' },
{ index: 1, name: $localize`Consolidation`, mode: 'and', filters: ['consolidation'], gradient: 'fee' },
{ index: 2, name: $localize`Coinjoin`, mode: 'and', filters: ['coinjoin'], gradient: 'fee' },
{ index: 3, name: $localize`Data`, mode: 'or', filters: ['inscription', 'fake_pubkey', 'op_return'], gradient: 'fee' },
];
goggleFlags = 0n;
goggleMode: FilterMode = 'and';
gradientMode: GradientMode = 'fee';
gradientMode: GradientMode = 'age';
goggleIndex = 0;
private destroy$ = new Subject();
@ -132,7 +132,7 @@ export class DashboardComponent implements OnInit, OnDestroy, AfterViewInit {
this.goggleIndex = goggle.index;
this.goggleFlags = toFlags(goggle.filters);
this.goggleMode = goggle.mode;
this.gradientMode = goggle.gradient;
this.gradientMode = active.gradient;
return;
}
}

View File

@ -9584,7 +9584,7 @@ export const faqData = [
category: "advanced",
showConditions: bitcoinNetworks,
fragment: "how-do-mempool-goggles-work",
title: "How do Mempool Goggles work?",
title: "How do Mempool Goggles work?",
},
{
type: "endpoint",

View File

@ -290,8 +290,8 @@
</ng-template>
<ng-template type="how-do-mempool-goggles-work">
<p>Mempool Goggles are a set of filters that can be applied to the <a [routerLink]="['/mempool-block/0' | relativeUrl]">mempool block visualizations</a> to highlight different types of transactions.</p>
<p>There are currently 25 different Mempool Goggles filters, grouped into six categories:</p>
<p>Mempool Goggles&trade; are a set of filters that can be applied to the <a [routerLink]="['/mempool-block/0' | relativeUrl]">mempool block visualizations</a> to highlight different types of transactions.</p>
<p>There are currently 25 different Mempool Goggles&trade; filters, grouped into six categories:</p>
<dl>
<dt>Features</dt>
<dd>
@ -418,5 +418,5 @@
</ng-template>
<ng-template type="address-lookup-issues">
<p>If you're getting errors when doing address lookups, it's probably because of your Electrum server backend.</p><p>Mempool uses an Electrum server to do address lookups. There are several implementations of the Electrum server protocol, and Mempool can use any of them, but the implementation you use affects performance:</p><ol><li><a href="https://github.com/romanz/electrs" target="_blank">romanz/electrs</a>. This is a common choice for its low resource requirements, and most full-node distros use it. But while this implementation works great for basic queries, it will struggle with heavier ones (e.g. looking up addresses with many transactions)—especially when running on low-power hardware like a Raspberry Pi.</li><li><a href="https://github.com/cculianu/Fulcrum" target="_blank">Fulcrum</a>. Fulcrum requires more resources than romanz/electrs but it can still run on a Raspberry Pi, and it handles heavy queries much more efficiently. If you're having issues with romanz/electrs, Fulcrum is worth a try.</li><li><a href="https://github.com/Blockstream/electrs" target="_blank">blockstream/electrs</a>. If you have stronger hardware, consider running Blockstream's electrs implementation. It's the backend mempool.space uses, and is also what powers blockstream.info.</li></ol>
<p>If you're getting errors when doing address lookups, it's probably because of your Electrum server backend.</p><p>Mempool uses an Electrum server to do address lookups. There are several implementations of the Electrum server protocol, and Mempool can use any of them, but the implementation you use affects performance:</p><ol><li><a href="https://github.com/romanz/electrs" target="_blank">romanz/electrs</a>. This is a common choice for its low resource requirements, and most full-node distros use it. But while this implementation works great for basic queries, it will struggle with heavier ones (e.g. looking up addresses with many transactions)—especially when running on low-power hardware like a Raspberry Pi.</li><li><a href="https://github.com/cculianu/Fulcrum" target="_blank">Fulcrum</a>. Fulcrum requires more resources than romanz/electrs but it can still run on a Raspberry Pi, and it handles heavy queries much more efficiently. If you're having issues with romanz/electrs, Fulcrum is worth a try.</li><li><a href="https://github.com/mempool/electrs" target="_blank">mempool/electrs</a>. If you have stronger hardware, you could consider running mempool/electrs, the backend that powers mempool.space. It's a fork of Blockstream's Esplora, which is in turn a fork of romanz/electrs, intended for maximum performance and larger-scale deployments.</li></ol>
</ng-template>

View File

@ -163,6 +163,7 @@ export interface PoolInfo {
emptyBlocks: number;
slug: string;
poolUniqueId: number;
unique_id: number;
}
export interface PoolStat {
pool: PoolInfo;

View File

@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
import { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';
import { CpfpInfo, OptimizedMempoolStats, AddressInformation, LiquidPegs, ITranslators,
PoolStat, BlockExtended, TransactionStripped, RewardStats, AuditScore, BlockSizesAndWeights, RbfTree, BlockAudit, Acceleration, AccelerationHistoryParams, CurrentPegs, AuditStatus, FederationAddress, FederationUtxo, RecentPeg, PegsVolume, AccelerationInfo } from '../interfaces/node-api.interface';
import { BehaviorSubject, Observable, catchError, filter, of, shareReplay, take, tap } from 'rxjs';
import { BehaviorSubject, Observable, catchError, filter, map, of, shareReplay, take, tap } from 'rxjs';
import { StateService } from './state.service';
import { Transaction } from '../interfaces/electrs.interface';
import { Conversion } from './price.service';
@ -246,11 +246,29 @@ export class ApiService {
return this.httpClient.get<any>(
this.apiBaseUrl + this.apiBasePath + `/api/v1/mining/pools` +
(interval !== undefined ? `/${interval}` : ''), { observe: 'response' }
)
.pipe(
map((response) => {
response.body.pools.forEach((pool) => {
if (pool.poolUniqueId === 0) {
pool.name = $localize`:@@e5d8bb389c702588877f039d72178f219453a72d:Unknown`;
}
});
return response;
})
);
}
getPoolStats$(slug: string): Observable<PoolStat> {
return this.httpClient.get<PoolStat>(this.apiBaseUrl + this.apiBasePath + `/api/v1/mining/pool/${slug}`);
return this.httpClient.get<PoolStat>(this.apiBaseUrl + this.apiBasePath + `/api/v1/mining/pool/${slug}`)
.pipe(
map((poolStats) => {
if (poolStats.pool.unique_id === 0) {
poolStats.pool.name = $localize`:@@e5d8bb389c702588877f039d72178f219453a72d:Unknown`;
}
return poolStats;
})
);
}
getPoolHashrate$(slug: string): Observable<any> {

View File

@ -132,6 +132,10 @@ export class ServicesApiServices {
return this.httpClient.post<any>(`${SERVICES_API_PREFIX}/accelerator/accelerate`, { txInput: txInput, userBid: userBid });
}
accelerateWithCashApp$(txInput: string, userBid: number, token: string, cashtag: string, referenceId: string) {
return this.httpClient.post<any>(`${SERVICES_API_PREFIX}/accelerator/accelerate/cashapp`, { txInput: txInput, userBid: userBid, token: token, cashtag: cashtag, referenceId: referenceId });
}
getAccelerations$(): Observable<Acceleration[]> {
return this.httpClient.get<Acceleration[]>(`${SERVICES_API_PREFIX}/accelerator/accelerations`);
}
@ -151,4 +155,8 @@ export class ServicesApiServices {
getAccelerationStats$(): Observable<AccelerationStats> {
return this.httpClient.get<AccelerationStats>(`${SERVICES_API_PREFIX}/accelerator/accelerations/stats`);
}
setupSquare$(): Observable<{squareAppId: string, squareLocationId: string}> {
return this.httpClient.get<{squareAppId: string, squareLocationId: string}>(`${SERVICES_API_PREFIX}/square/setup`);
}
}

View File

@ -154,7 +154,7 @@ export class StateService {
searchFocus$: Subject<boolean> = new Subject<boolean>();
menuOpen$: BehaviorSubject<boolean> = new BehaviorSubject(false);
activeGoggles$: BehaviorSubject<ActiveFilter> = new BehaviorSubject({ mode: 'and', filters: [], gradient: 'fee' });
activeGoggles$: BehaviorSubject<ActiveFilter> = new BehaviorSubject({ mode: 'and', filters: [], gradient: 'age' });
constructor(
@Inject(PLATFORM_ID) private platformId: any,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -453,40 +453,121 @@
<note priority="1" from="description">sat</note>
<note priority="1" from="meaning">shared.sat</note>
</trans-unit>
<trans-unit id="7159011509695804248" datatype="html">
<source>maximum</source>
<target>maximal</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-fee-graph.component.ts</context>
<context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c" datatype="html">
<source>Next Block</source>
<target>Nächster Block</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-fee-graph.component.ts</context>
<context context-type="linenumber">66</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">28</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
<context context-type="linenumber">87</context>
</context-group>
</trans-unit>
<trans-unit id="f24773075af97666c0feca0e883c2585712fe597" datatype="html">
<source>Your transaction</source>
<target>Deine Transaktion</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">35</context>
</context-group>
<note priority="1" from="description">accelerator.your-transaction</note>
</trans-unit>
<trans-unit id="bee6b649ee82d9a7cde233070b665eec7c531b1d" datatype="html">
<source>Plus <x id="INTERPOLATION" equiv-text="{{ estimate.txSummary.ancestorCount - 1 }}"/> unconfirmed ancestor(s)</source>
<target>Plus <x id="INTERPOLATION" equiv-text="{{ estimate.txSummary.ancestorCount - 1 }}"/> unbestätigte(r) Vorfahre(n)</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">39</context>
</context-group>
<note priority="1" from="description">accelerator.plus-unconfirmed-ancestors</note>
</trans-unit>
<trans-unit id="54c58b39481f1749fce23fa8a77f616eee84d761" datatype="html">
<source>Virtual size</source>
<target>Virtuelle Größe</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">44</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
<context context-type="linenumber">59</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
<context context-type="linenumber">25</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">189</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">317</context>
</context-group>
<note priority="1" from="description">Transaction Virtual Size</note>
<note priority="1" from="meaning">transaction.vsize</note>
</trans-unit>
<trans-unit id="adbeb446bf941afda4d4a923b5e4ce0cf4a1c1b8" datatype="html">
<source>In-band fees</source>
<target>In-Band-Gebühren</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">53</context>
</context-group>
<note priority="1" from="description">accelerator.in-band-fees</note>
</trans-unit>
<trans-unit id="e4b2d9e6a2ab9e6ca34027ec03beaac42b7badd4" datatype="html">
<source>sats</source>
<target>sats</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">59</context>
<context context-type="linenumber">55</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">77</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">118</context>
<context context-type="linenumber">109</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">127</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">139</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">156</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">190</context>
<context context-type="linenumber">179</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">213</context>
<context context-type="linenumber">200</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/calculator/calculator.component.html</context>
@ -550,20 +631,39 @@
</context-group>
<note priority="1" from="description">shared.sats</note>
</trans-unit>
<trans-unit id="8611a038eb243bbed95bf5ff49af4129f22dc55a" datatype="html">
<source>How much more are you willing to pay?</source>
<target>Wie viel mehr bist Du bereit zu zahlen?</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">68</context>
</context-group>
<note priority="1" from="description">accelerator.pay-how-much</note>
</trans-unit>
<trans-unit id="4487eb902b70d33b4bb7a0828b66afec3a96fc18" datatype="html">
<source>Choose the maximum extra transaction fee you're willing to pay to get into the next block.</source>
<target>Wähle die maximale zusätzliche Transaktionsgebühr, die Du zu zahlen bereit sind, um in den nächsten Block zu gelangen.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">71</context>
</context-group>
<note priority="1" from="description">accelerator.transaction-fee-description</note>
</trans-unit>
<trans-unit id="0b537472d5f7518ed2c2c2b747997b0447ec5ee8" datatype="html">
<source>Next block market rate</source>
<target>Nächster Blockmarktpreis</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">95</context>
</context-group>
<note priority="1" from="description">accelerator.next-block-rate</note>
</trans-unit>
<trans-unit id="d2eb45d1cd8cd146b7cb0223ab97a4b03b614060" datatype="html">
<source>sat/vB</source>
<target>sat/vB</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">108</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">198</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/fee-rate/fee-rate.component.html</context>
@ -576,6 +676,130 @@
<note priority="1" from="description">sat/vB</note>
<note priority="1" from="meaning">shared.sat-vbyte</note>
</trans-unit>
<trans-unit id="c2836a2964adf9e369ee0a1ce67f991cf2aa435d" datatype="html">
<source>Estimated extra fee required</source>
<target>Geschätzte zusätzlich erforderliche Gebühr</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<note priority="1" from="description">accelerator.estimated-extra-fee-required</note>
</trans-unit>
<trans-unit id="26e50fa97db4eecde26ff892d725e61ca9201c48" datatype="html">
<source>Mempool Accelerator™ fees</source>
<target>Mempool Accelerator™ Gebühren</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<note priority="1" from="description">accelerator.mempool-accelerator-fees</note>
</trans-unit>
<trans-unit id="1ec82428244c76064090ea5a55827e3fada82306" datatype="html">
<source>Accelerator Service Fee</source>
<target>Accelerator-Servicegebühr</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">121</context>
</context-group>
<note priority="1" from="description">accelerator.service-fee</note>
</trans-unit>
<trans-unit id="7d07b80b17dfab3582807759420b8d723c9e4414" datatype="html">
<source>Transaction Size Surcharge</source>
<target>Zuschlag für Transaktionsgröße</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">133</context>
</context-group>
<note priority="1" from="description">accelerator.tx-size-surcharge</note>
</trans-unit>
<trans-unit id="004732b44df582a2d24e2abbd3f46bc42ae8c546" datatype="html">
<source>Estimated acceleration cost</source>
<target>Geschätzte Beschleunigungskosten</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">148</context>
</context-group>
<note priority="1" from="description">accelerator.estimated-cost</note>
</trans-unit>
<trans-unit id="c9ec95585f57bd87212693db7cb00d9ed70d49b1" datatype="html">
<source>Maximum acceleration cost</source>
<target>Maximale Beschleunigungskosten</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">171</context>
</context-group>
<note priority="1" from="description">accelerator.maximum-cost</note>
</trans-unit>
<trans-unit id="f3ff11006f77909b9fca2e0fda0a72b097cd76de" datatype="html">
<source>Available balance</source>
<target>Verfügbares Guthaben</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">195</context>
</context-group>
<note priority="1" from="description">accelerator.available-balance</note>
</trans-unit>
<trans-unit id="ba4f24bf9bf3dc4db3d6bc1b8b63339295f0b806" datatype="html">
<source>Sign In</source>
<target>Anmelden</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">214</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/menu/menu.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">26</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">31</context>
</context-group>
<note priority="1" from="description">shared.sign-in</note>
</trans-unit>
<trans-unit id="2504ca478a61c5e53f9ed55e9aeb3e8f2d01b3eb" datatype="html">
<source>Accelerate on mempool.space</source>
<target>Beschleunigen auf mempool.space</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">223</context>
</context-group>
<note priority="1" from="description">accelerator.accelerate-on-mempoolspace</note>
</trans-unit>
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
<source>Accelerate</source>
<target>Beschleunigen</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">235</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">106</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">145</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">155</context>
</context-group>
<note priority="1" from="description">Accelerate button label</note>
<note priority="1" from="meaning">transaction.accelerate</note>
</trans-unit>
<trans-unit id="2bec172478fbbbe6536a662f5d4d3d711c208b09" datatype="html">
<source>If your tx is accelerated to ~<x id="INTERPOLATION" equiv-text="{{ i | number : '1.0-0' }}"/> sat/vB</source>
<target>Wenn Deine tx auf ~<x id="INTERPOLATION" equiv-text="{{ i | number : '1.0-0' }}"/> sat/vB beschleunigt wird</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">249</context>
</context-group>
<note priority="1" from="description">accelerator.accelerated-to-description</note>
</trans-unit>
<trans-unit id="bcf34abc2d9ed8f45a2f65dd464c46694e9a181e" datatype="html">
<source>Acceleration Fees</source>
<target>Beschleunigungsgebühren</target>
@ -735,7 +959,11 @@
<context context-type="sourcefile">src/app/components/acceleration/accelerations-list/accelerations-list.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<note priority="1" from="description">master-page.blocks</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/acceleration/accelerator-dashboard/accelerator-dashboard.component.html</context>
<context context-type="linenumber">41</context>
</context-group>
<note priority="1" from="description">accelerator.accelerations</note>
</trans-unit>
<trans-unit id="94c248797dd2b6af49068cb49c3b4bc26bec6a16" datatype="html">
<source>TXID</source>
@ -750,11 +978,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">71</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">134</context>
</context-group>
<note priority="1" from="description">dashboard.latest-transactions.txid</note>
</trans-unit>
@ -831,7 +1059,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">73</context>
<context context-type="linenumber">74</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-list/channels-list.component.html</context>
@ -915,15 +1143,6 @@
</context-group>
<note priority="1" from="description">mining.3-months</note>
</trans-unit>
<trans-unit id="f26767fd3fbdc174a0f961fc538d10f80eaec6d8" datatype="html">
<source>Mempool Goggles: Accelerations</source>
<target>Mempool Goggles: Beschleunigungen</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/acceleration/accelerator-dashboard/accelerator-dashboard.component.html</context>
<context context-type="linenumber">41</context>
</context-group>
<note priority="1" from="description">dashboard.mempool-goggles-accelerations</note>
</trans-unit>
<trans-unit id="97ff5554c708164d58b14e45072acbcbf9f4d137" datatype="html">
<source>View more »</source>
<target>Mehr anzeigen »</target>
@ -981,7 +1200,7 @@
</trans-unit>
<trans-unit id="841f2a74ae5095e6e37f5749f3cc1851cf36a420" datatype="html">
<source>Avg Max Bid</source>
<target>Durchschnittliches Höchstgebot</target>
<target>Ø Max.-Gebot</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/acceleration/pending-stats/pending-stats.component.html</context>
<context context-type="linenumber">11</context>
@ -1213,7 +1432,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">145</context>
<context context-type="linenumber">146</context>
</context-group>
<note priority="1" from="description">shared.confidential</note>
</trans-unit>
@ -1735,7 +1954,7 @@
<context context-type="sourcefile">src/app/components/block-filters/block-filters.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<note priority="1" from="description">Mempool Goggles tooltip</note>
<note priority="1" from="description">Mempool Goggles tooltip</note>
</trans-unit>
<trans-unit id="7cbedd89f60daafaf0e56363900d666a4e02ffb1" datatype="html">
<source>beta</source>
@ -1772,23 +1991,23 @@
</context-group>
<note priority="1" from="description">mempool-goggles.any</note>
</trans-unit>
<trans-unit id="f6314b04b5349b89ea90a88eca7abd4a8e1129c0" datatype="html">
<source>Gradient</source>
<target>Gradient</target>
<trans-unit id="360b9f5c32209001518dbd1dc512f25291473b79" datatype="html">
<source>Tint</source>
<target>Farbton</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-filters/block-filters.component.html</context>
<context context-type="linenumber">30</context>
</context-group>
<note priority="1" from="description">mempool-goggles.gradient</note>
<note priority="1" from="description">mempool-goggles.tint</note>
</trans-unit>
<trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">
<source>Default</source>
<target>Standard</target>
<trans-unit id="4cfabb48965febabe67eb491a3b7e58555d3d52a" datatype="html">
<source>Classic</source>
<target>Klassisch</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-filters/block-filters.component.html</context>
<context context-type="linenumber">33</context>
</context-group>
<note priority="1" from="description">mempool-goggles.default</note>
<note priority="1" from="description">mempool-goggles.classic</note>
</trans-unit>
<trans-unit id="2e6be334a2152f179a557167f98ce4459ff9a2f9" datatype="html">
<source>Age</source>
@ -2008,7 +2227,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">135</context>
</context-group>
<note priority="1" from="description">dashboard.latest-transactions.amount</note>
</trans-unit>
@ -2037,7 +2256,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">136</context>
<context context-type="linenumber">137</context>
</context-group>
<note priority="1" from="description">Transaction fee</note>
<note priority="1" from="meaning">transaction.fee</note>
@ -2096,28 +2315,6 @@
<note priority="1" from="description">Effective transaction fee rate</note>
<note priority="1" from="meaning">transaction.effective-fee-rate</note>
</trans-unit>
<trans-unit id="54c58b39481f1749fce23fa8a77f616eee84d761" datatype="html">
<source>Virtual size</source>
<target>Virtuelle Größe</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
<context context-type="linenumber">59</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
<context context-type="linenumber">25</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">189</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">317</context>
</context-group>
<note priority="1" from="description">Transaction Virtual Size</note>
<note priority="1" from="meaning">transaction.vsize</note>
</trans-unit>
<trans-unit id="13f5a75f3e01e5924e45052d2f336eda8bac37e8" datatype="html">
<source>Weight</source>
<target>Gewicht</target>
@ -2357,7 +2554,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">108</context>
</context-group>
</trans-unit>
<trans-unit id="919f2fd60a898850c24b1584362bbf18a4628bcb" datatype="html">
@ -2579,23 +2776,6 @@
<note priority="1" from="description">Block reorg</note>
<note priority="1" from="meaning">block.reorged</note>
</trans-unit>
<trans-unit id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c" datatype="html">
<source>Next Block</source>
<target>Nächster Block</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">28</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
<context context-type="linenumber">87</context>
</context-group>
<note priority="1" from="description">Next Block</note>
</trans-unit>
<trans-unit id="a0e07a711d171f4d40dd388d70ed32f9b8101e0a" datatype="html">
<source>Previous Block</source>
<target>Vorheriger Block</target>
@ -2671,6 +2851,14 @@
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">323</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/api.service.ts</context>
<context context-type="linenumber">254</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/api.service.ts</context>
<context context-type="linenumber">267</context>
</context-group>
<note priority="1" from="description">unknown</note>
</trans-unit>
<trans-unit id="b2cb12c1680a46464cae5aa0d0d1d6914733a75d" datatype="html">
@ -3052,7 +3240,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">104</context>
<context context-type="linenumber">105</context>
</context-group>
<note priority="1" from="description">latest-blocks.height</note>
</trans-unit>
@ -3144,11 +3332,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">283</context>
<context context-type="linenumber">284</context>
</context-group>
<note priority="1" from="description">dashboard.txs</note>
</trans-unit>
@ -3223,7 +3411,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">287</context>
<context context-type="linenumber">288</context>
</context-group>
<note priority="1" from="description">Memory usage</note>
<note priority="1" from="meaning">dashboard.memory-usage</note>
@ -3241,7 +3429,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">281</context>
<context context-type="linenumber">282</context>
</context-group>
<note priority="1" from="description">Unconfirmed count</note>
<note priority="1" from="meaning">dashboard.unconfirmed</note>
@ -3621,7 +3809,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">47</context>
<context context-type="linenumber">48</context>
</context-group>
<note priority="1" from="description">dashboard.incoming-transactions</note>
</trans-unit>
@ -3675,7 +3863,7 @@
</trans-unit>
<trans-unit id="4592bd8fffebd3841fc8d59472caf4b4655e6184" datatype="html">
<source>Pools Ranking</source>
<target>Pool-Ranking</target>
<target>Pool-Rangliste</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context>
<context context-type="linenumber">10</context>
@ -4324,7 +4512,7 @@
</trans-unit>
<trans-unit id="a4c3af092f04fb531a39f0a85e2f7b13ef6e9512" datatype="html">
<source>Avg Peg Ratio</source>
<target>Durchschnittliches Peg-Verhältnis</target>
<target>Ø PEG-Ratio</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-reserves-audit/reserves-ratio-stats/reserves-ratio-stats.component.html</context>
<context context-type="linenumber">14</context>
@ -4474,23 +4662,6 @@
<context context-type="linenumber">328</context>
</context-group>
</trans-unit>
<trans-unit id="ba4f24bf9bf3dc4db3d6bc1b8b63339295f0b806" datatype="html">
<source>Sign In</source>
<target>Anmelden</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/menu/menu.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">26</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">31</context>
</context-group>
<note priority="1" from="description">shared.sign-in</note>
</trans-unit>
<trans-unit id="26e78cd052d05a0c1a7db43fac8df52ec6950672" datatype="html">
<source>Reward stats</source>
<target>Belohnungsstatistiken</target>
@ -4518,7 +4689,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">98</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
@ -4741,23 +4912,27 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">205</context>
<context context-type="linenumber">206</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
</trans-unit>
<trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Andere (<x id="PH" equiv-text="percentage"/>)</target>
<target>Sonstiges (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">203</context>
<context context-type="linenumber">186</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">207</context>
<context context-type="linenumber">204</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">208</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
@ -4950,11 +5125,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">85</context>
<context context-type="linenumber">86</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">105</context>
<context context-type="linenumber">106</context>
</context-group>
<note priority="1" from="description">latest-blocks.mined</note>
</trans-unit>
@ -5065,7 +5240,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">86</context>
<context context-type="linenumber">87</context>
</context-group>
<note priority="1" from="description">transaction.full-rbf</note>
</trans-unit>
@ -5107,7 +5282,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">87</context>
<context context-type="linenumber">88</context>
</context-group>
<note priority="1" from="description">RBF</note>
<note priority="1" from="meaning">tx-features.tag.rbf</note>
@ -5739,7 +5914,7 @@
</trans-unit>
<trans-unit id="885666551418fd59011ceb09d5c481095940193b" datatype="html">
<source>Features</source>
<target>Features</target>
<target>Merkmale</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">68</context>
@ -5872,20 +6047,6 @@
<note priority="1" from="description">Transaction ETA in several hours or more</note>
<note priority="1" from="meaning">transaction.eta.in-several-hours</note>
</trans-unit>
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
<source>Accelerate</source>
<target>Beschleunigen</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">145</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">155</context>
</context-group>
<note priority="1" from="description">Accelerate button label</note>
<note priority="1" from="meaning">transaction.accelerate</note>
</trans-unit>
<trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">
<source>Type</source>
<target>Typ</target>
@ -6440,21 +6601,12 @@
</context-group>
<note priority="1" from="description">fees-box.transaction-fees</note>
</trans-unit>
<trans-unit id="c385e9c0bacd3003ae141bcef7b2193aec618937" datatype="html">
<source>Mempool Goggles</source>
<target>Mempool Goggles</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
<note priority="1" from="description">dashboard.mempool-goggles</note>
</trans-unit>
<trans-unit id="4fe744df6d36b5e9b0afab728b77fc635b99f040" datatype="html">
<source>Recent Replacements</source>
<target>Aktuelle Ersetzungen</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">64</context>
<context context-type="linenumber">65</context>
</context-group>
<note priority="1" from="description">dashboard.recent-rbf-replacements</note>
</trans-unit>
@ -6463,7 +6615,7 @@
<target>Vorherige Gebühr</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">72</context>
</context-group>
<note priority="1" from="description">dashboard.previous-transaction-fee</note>
</trans-unit>
@ -6472,7 +6624,7 @@
<target>Neue Gebühr</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">73</context>
</context-group>
<note priority="1" from="description">dashboard.new-transaction-fee</note>
</trans-unit>
@ -6481,7 +6633,7 @@
<target>Kürzliche Transaktionen</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">130</context>
<context context-type="linenumber">131</context>
</context-group>
<note priority="1" from="description">dashboard.recent-transactions</note>
</trans-unit>
@ -6490,11 +6642,11 @@
<target>Liquid Föderation Bestand</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">164</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">304</context>
<context context-type="linenumber">305</context>
</context-group>
<note priority="1" from="description">liquid.federation-holdings</note>
</trans-unit>
@ -6503,11 +6655,11 @@
<target>Föderation Timelock-Abgelaufene UTXOs</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">173</context>
<context context-type="linenumber">174</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">313</context>
<context context-type="linenumber">314</context>
</context-group>
<note priority="1" from="description">liquid.federation-expired-utxos</note>
</trans-unit>
@ -6516,11 +6668,11 @@
<target>L-BTC-Angebot gegen BTC-Bestände</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">183</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">323</context>
<context context-type="linenumber">324</context>
</context-group>
<note priority="1" from="description">dashboard.lbtc-supply-against-btc-holdings</note>
</trans-unit>
@ -6529,7 +6681,7 @@
<target>Mindestgebühr</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">274</context>
<context context-type="linenumber">275</context>
</context-group>
<note priority="1" from="description">Minimum mempool fee</note>
<note priority="1" from="meaning">dashboard.minimum-fee</note>
@ -6539,7 +6691,7 @@
<target>Streichung</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">275</context>
<context context-type="linenumber">276</context>
</context-group>
<note priority="1" from="description">Purgin below fee</note>
<note priority="1" from="meaning">dashboard.purging</note>
@ -6549,7 +6701,7 @@
<target>Indizierung läuft</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">363</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
@ -7669,7 +7821,7 @@
</trans-unit>
<trans-unit id="2d9883d230a47fbbb2ec969e32a186597ea27405" datatype="html">
<source>Liquidity Ranking</source>
<target>Liquiditäts Rangfolge</target>
<target>Liquiditäts Ranking</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
<context context-type="linenumber">66</context>
@ -7690,7 +7842,7 @@
</trans-unit>
<trans-unit id="c50bf442cf99f6fc5f8b687c460f33234b879869" datatype="html">
<source>Connectivity Ranking</source>
<target>Verbindungs Rangfolge</target>
<target>Verbindungs Rangliste</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
<context context-type="linenumber">80</context>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -453,40 +453,121 @@
<note priority="1" from="description">sat</note>
<note priority="1" from="meaning">shared.sat</note>
</trans-unit>
<trans-unit id="7159011509695804248" datatype="html">
<source>maximum</source>
<target>maximal</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-fee-graph.component.ts</context>
<context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c" datatype="html">
<source>Next Block</source>
<target>Nästa block</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-fee-graph.component.ts</context>
<context context-type="linenumber">66</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">28</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
<context context-type="linenumber">87</context>
</context-group>
</trans-unit>
<trans-unit id="f24773075af97666c0feca0e883c2585712fe597" datatype="html">
<source>Your transaction</source>
<target>Din transaktion</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">35</context>
</context-group>
<note priority="1" from="description">accelerator.your-transaction</note>
</trans-unit>
<trans-unit id="bee6b649ee82d9a7cde233070b665eec7c531b1d" datatype="html">
<source>Plus <x id="INTERPOLATION" equiv-text="{{ estimate.txSummary.ancestorCount - 1 }}"/> unconfirmed ancestor(s)</source>
<target>Plus <x id="INTERPOLATION" equiv-text="{{ estimate.txSummary.ancestorCount - 1 }}"/> obekräftade förfäder</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">39</context>
</context-group>
<note priority="1" from="description">accelerator.plus-unconfirmed-ancestors</note>
</trans-unit>
<trans-unit id="54c58b39481f1749fce23fa8a77f616eee84d761" datatype="html">
<source>Virtual size</source>
<target>Virtuell storlek</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">44</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
<context context-type="linenumber">59</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
<context context-type="linenumber">25</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">189</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">317</context>
</context-group>
<note priority="1" from="description">Transaction Virtual Size</note>
<note priority="1" from="meaning">transaction.vsize</note>
</trans-unit>
<trans-unit id="adbeb446bf941afda4d4a923b5e4ce0cf4a1c1b8" datatype="html">
<source>In-band fees</source>
<target>In-band avgifter</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">53</context>
</context-group>
<note priority="1" from="description">accelerator.in-band-fees</note>
</trans-unit>
<trans-unit id="e4b2d9e6a2ab9e6ca34027ec03beaac42b7badd4" datatype="html">
<source>sats</source>
<target>sats</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">59</context>
<context context-type="linenumber">55</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">77</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">118</context>
<context context-type="linenumber">109</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">127</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">139</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">156</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">190</context>
<context context-type="linenumber">179</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">213</context>
<context context-type="linenumber">200</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/calculator/calculator.component.html</context>
@ -550,20 +631,39 @@
</context-group>
<note priority="1" from="description">shared.sats</note>
</trans-unit>
<trans-unit id="8611a038eb243bbed95bf5ff49af4129f22dc55a" datatype="html">
<source>How much more are you willing to pay?</source>
<target>Hur mycket mer är du villig att betala?</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">68</context>
</context-group>
<note priority="1" from="description">accelerator.pay-how-much</note>
</trans-unit>
<trans-unit id="4487eb902b70d33b4bb7a0828b66afec3a96fc18" datatype="html">
<source>Choose the maximum extra transaction fee you're willing to pay to get into the next block.</source>
<target>Välj den maximala extra transaktionsavgift du är villig att betala för att komma med i nästa block.</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">71</context>
</context-group>
<note priority="1" from="description">accelerator.transaction-fee-description</note>
</trans-unit>
<trans-unit id="0b537472d5f7518ed2c2c2b747997b0447ec5ee8" datatype="html">
<source>Next block market rate</source>
<target>Marknadspriset för nästa block</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">95</context>
</context-group>
<note priority="1" from="description">accelerator.next-block-rate</note>
</trans-unit>
<trans-unit id="d2eb45d1cd8cd146b7cb0223ab97a4b03b614060" datatype="html">
<source>sat/vB</source>
<target>sat/vB</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">108</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">198</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/fee-rate/fee-rate.component.html</context>
@ -576,6 +676,130 @@
<note priority="1" from="description">sat/vB</note>
<note priority="1" from="meaning">shared.sat-vbyte</note>
</trans-unit>
<trans-unit id="c2836a2964adf9e369ee0a1ce67f991cf2aa435d" datatype="html">
<source>Estimated extra fee required</source>
<target>Uppskattad extra avgift som krävs</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<note priority="1" from="description">accelerator.estimated-extra-fee-required</note>
</trans-unit>
<trans-unit id="26e50fa97db4eecde26ff892d725e61ca9201c48" datatype="html">
<source>Mempool Accelerator™ fees</source>
<target>Mempool Accelerator™ avgifter</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<note priority="1" from="description">accelerator.mempool-accelerator-fees</note>
</trans-unit>
<trans-unit id="1ec82428244c76064090ea5a55827e3fada82306" datatype="html">
<source>Accelerator Service Fee</source>
<target>Acceleratorserviceavgift</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">121</context>
</context-group>
<note priority="1" from="description">accelerator.service-fee</note>
</trans-unit>
<trans-unit id="7d07b80b17dfab3582807759420b8d723c9e4414" datatype="html">
<source>Transaction Size Surcharge</source>
<target>Transaktionsstorlekstillägg</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">133</context>
</context-group>
<note priority="1" from="description">accelerator.tx-size-surcharge</note>
</trans-unit>
<trans-unit id="004732b44df582a2d24e2abbd3f46bc42ae8c546" datatype="html">
<source>Estimated acceleration cost</source>
<target>Beräknad accelerationskostnad</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">148</context>
</context-group>
<note priority="1" from="description">accelerator.estimated-cost</note>
</trans-unit>
<trans-unit id="c9ec95585f57bd87212693db7cb00d9ed70d49b1" datatype="html">
<source>Maximum acceleration cost</source>
<target>Maximal accelerationskostnad</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">171</context>
</context-group>
<note priority="1" from="description">accelerator.maximum-cost</note>
</trans-unit>
<trans-unit id="f3ff11006f77909b9fca2e0fda0a72b097cd76de" datatype="html">
<source>Available balance</source>
<target>Tillgängligt saldo</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">195</context>
</context-group>
<note priority="1" from="description">accelerator.available-balance</note>
</trans-unit>
<trans-unit id="ba4f24bf9bf3dc4db3d6bc1b8b63339295f0b806" datatype="html">
<source>Sign In</source>
<target>Logga in</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">214</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/menu/menu.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">26</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">31</context>
</context-group>
<note priority="1" from="description">shared.sign-in</note>
</trans-unit>
<trans-unit id="2504ca478a61c5e53f9ed55e9aeb3e8f2d01b3eb" datatype="html">
<source>Accelerate on mempool.space</source>
<target>Accelerera på mempool.space</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">223</context>
</context-group>
<note priority="1" from="description">accelerator.accelerate-on-mempoolspace</note>
</trans-unit>
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
<source>Accelerate</source>
<target>Accelerera</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">235</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">106</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">145</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">155</context>
</context-group>
<note priority="1" from="description">Accelerate button label</note>
<note priority="1" from="meaning">transaction.accelerate</note>
</trans-unit>
<trans-unit id="2bec172478fbbbe6536a662f5d4d3d711c208b09" datatype="html">
<source>If your tx is accelerated to ~<x id="INTERPOLATION" equiv-text="{{ i | number : '1.0-0' }}"/> sat/vB</source>
<target>Om din tx accelereras till ~<x id="INTERPOLATION" equiv-text="{{ i | number : '1.0-0' }}"/> sat/vB</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">249</context>
</context-group>
<note priority="1" from="description">accelerator.accelerated-to-description</note>
</trans-unit>
<trans-unit id="bcf34abc2d9ed8f45a2f65dd464c46694e9a181e" datatype="html">
<source>Acceleration Fees</source>
<target>Accelerationsavgifter</target>
@ -735,7 +959,11 @@
<context context-type="sourcefile">src/app/components/acceleration/accelerations-list/accelerations-list.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<note priority="1" from="description">master-page.blocks</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/acceleration/accelerator-dashboard/accelerator-dashboard.component.html</context>
<context context-type="linenumber">41</context>
</context-group>
<note priority="1" from="description">accelerator.accelerations</note>
</trans-unit>
<trans-unit id="94c248797dd2b6af49068cb49c3b4bc26bec6a16" datatype="html">
<source>TXID</source>
@ -750,11 +978,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">71</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">134</context>
</context-group>
<note priority="1" from="description">dashboard.latest-transactions.txid</note>
</trans-unit>
@ -831,7 +1059,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">73</context>
<context context-type="linenumber">74</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-list/channels-list.component.html</context>
@ -915,15 +1143,6 @@
</context-group>
<note priority="1" from="description">mining.3-months</note>
</trans-unit>
<trans-unit id="f26767fd3fbdc174a0f961fc538d10f80eaec6d8" datatype="html">
<source>Mempool Goggles: Accelerations</source>
<target>Mempool Goggles: Accelerationer</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/acceleration/accelerator-dashboard/accelerator-dashboard.component.html</context>
<context context-type="linenumber">41</context>
</context-group>
<note priority="1" from="description">dashboard.mempool-goggles-accelerations</note>
</trans-unit>
<trans-unit id="97ff5554c708164d58b14e45072acbcbf9f4d137" datatype="html">
<source>View more »</source>
<target>Visa mer »</target>
@ -1213,7 +1432,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">145</context>
<context context-type="linenumber">146</context>
</context-group>
<note priority="1" from="description">shared.confidential</note>
</trans-unit>
@ -1735,7 +1954,7 @@
<context context-type="sourcefile">src/app/components/block-filters/block-filters.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<note priority="1" from="description">Mempool Goggles tooltip</note>
<note priority="1" from="description">Mempool Goggles tooltip</note>
</trans-unit>
<trans-unit id="7cbedd89f60daafaf0e56363900d666a4e02ffb1" datatype="html">
<source>beta</source>
@ -1772,23 +1991,23 @@
</context-group>
<note priority="1" from="description">mempool-goggles.any</note>
</trans-unit>
<trans-unit id="f6314b04b5349b89ea90a88eca7abd4a8e1129c0" datatype="html">
<source>Gradient</source>
<target>Gradient</target>
<trans-unit id="360b9f5c32209001518dbd1dc512f25291473b79" datatype="html">
<source>Tint</source>
<target>Färgton</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-filters/block-filters.component.html</context>
<context context-type="linenumber">30</context>
</context-group>
<note priority="1" from="description">mempool-goggles.gradient</note>
<note priority="1" from="description">mempool-goggles.tint</note>
</trans-unit>
<trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">
<source>Default</source>
<target>Standard</target>
<trans-unit id="4cfabb48965febabe67eb491a3b7e58555d3d52a" datatype="html">
<source>Classic</source>
<target>Klassisk</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-filters/block-filters.component.html</context>
<context context-type="linenumber">33</context>
</context-group>
<note priority="1" from="description">mempool-goggles.default</note>
<note priority="1" from="description">mempool-goggles.classic</note>
</trans-unit>
<trans-unit id="2e6be334a2152f179a557167f98ce4459ff9a2f9" datatype="html">
<source>Age</source>
@ -2008,7 +2227,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">135</context>
</context-group>
<note priority="1" from="description">dashboard.latest-transactions.amount</note>
</trans-unit>
@ -2037,7 +2256,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">136</context>
<context context-type="linenumber">137</context>
</context-group>
<note priority="1" from="description">Transaction fee</note>
<note priority="1" from="meaning">transaction.fee</note>
@ -2096,28 +2315,6 @@
<note priority="1" from="description">Effective transaction fee rate</note>
<note priority="1" from="meaning">transaction.effective-fee-rate</note>
</trans-unit>
<trans-unit id="54c58b39481f1749fce23fa8a77f616eee84d761" datatype="html">
<source>Virtual size</source>
<target>Virtuell storlek</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
<context context-type="linenumber">59</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
<context context-type="linenumber">25</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">189</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">317</context>
</context-group>
<note priority="1" from="description">Transaction Virtual Size</note>
<note priority="1" from="meaning">transaction.vsize</note>
</trans-unit>
<trans-unit id="13f5a75f3e01e5924e45052d2f336eda8bac37e8" datatype="html">
<source>Weight</source>
<target>Vikt</target>
@ -2357,7 +2554,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">108</context>
</context-group>
</trans-unit>
<trans-unit id="919f2fd60a898850c24b1584362bbf18a4628bcb" datatype="html">
@ -2579,23 +2776,6 @@
<note priority="1" from="description">Block reorg</note>
<note priority="1" from="meaning">block.reorged</note>
</trans-unit>
<trans-unit id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c" datatype="html">
<source>Next Block</source>
<target>Nästa block</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">28</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
<context context-type="linenumber">87</context>
</context-group>
<note priority="1" from="description">Next Block</note>
</trans-unit>
<trans-unit id="a0e07a711d171f4d40dd388d70ed32f9b8101e0a" datatype="html">
<source>Previous Block</source>
<target>Föregående block</target>
@ -2671,6 +2851,14 @@
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">323</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/api.service.ts</context>
<context context-type="linenumber">254</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/api.service.ts</context>
<context context-type="linenumber">267</context>
</context-group>
<note priority="1" from="description">unknown</note>
</trans-unit>
<trans-unit id="b2cb12c1680a46464cae5aa0d0d1d6914733a75d" datatype="html">
@ -3052,7 +3240,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">104</context>
<context context-type="linenumber">105</context>
</context-group>
<note priority="1" from="description">latest-blocks.height</note>
</trans-unit>
@ -3144,11 +3332,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">283</context>
<context context-type="linenumber">284</context>
</context-group>
<note priority="1" from="description">dashboard.txs</note>
</trans-unit>
@ -3223,7 +3411,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">287</context>
<context context-type="linenumber">288</context>
</context-group>
<note priority="1" from="description">Memory usage</note>
<note priority="1" from="meaning">dashboard.memory-usage</note>
@ -3241,7 +3429,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">281</context>
<context context-type="linenumber">282</context>
</context-group>
<note priority="1" from="description">Unconfirmed count</note>
<note priority="1" from="meaning">dashboard.unconfirmed</note>
@ -3621,7 +3809,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">47</context>
<context context-type="linenumber">48</context>
</context-group>
<note priority="1" from="description">dashboard.incoming-transactions</note>
</trans-unit>
@ -4474,23 +4662,6 @@
<context context-type="linenumber">328</context>
</context-group>
</trans-unit>
<trans-unit id="ba4f24bf9bf3dc4db3d6bc1b8b63339295f0b806" datatype="html">
<source>Sign In</source>
<target>Logga in</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/menu/menu.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">26</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">31</context>
</context-group>
<note priority="1" from="description">shared.sign-in</note>
</trans-unit>
<trans-unit id="26e78cd052d05a0c1a7db43fac8df52ec6950672" datatype="html">
<source>Reward stats</source>
<target>Belöningsstats</target>
@ -4518,7 +4689,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">98</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
@ -4741,23 +4912,27 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">205</context>
<context context-type="linenumber">206</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
</trans-unit>
<trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<target>Övriga (<x id="PH" equiv-text="percentage"/>)</target>
<target>Annat (<x id="PH" equiv-text="percentage"/>)</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">203</context>
<context context-type="linenumber">186</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">207</context>
<context context-type="linenumber">204</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">208</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
@ -4950,11 +5125,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">85</context>
<context context-type="linenumber">86</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">105</context>
<context context-type="linenumber">106</context>
</context-group>
<note priority="1" from="description">latest-blocks.mined</note>
</trans-unit>
@ -5065,7 +5240,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">86</context>
<context context-type="linenumber">87</context>
</context-group>
<note priority="1" from="description">transaction.full-rbf</note>
</trans-unit>
@ -5107,7 +5282,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">87</context>
<context context-type="linenumber">88</context>
</context-group>
<note priority="1" from="description">RBF</note>
<note priority="1" from="meaning">tx-features.tag.rbf</note>
@ -5872,20 +6047,6 @@
<note priority="1" from="description">Transaction ETA in several hours or more</note>
<note priority="1" from="meaning">transaction.eta.in-several-hours</note>
</trans-unit>
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
<source>Accelerate</source>
<target>Accelerera</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">145</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">155</context>
</context-group>
<note priority="1" from="description">Accelerate button label</note>
<note priority="1" from="meaning">transaction.accelerate</note>
</trans-unit>
<trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">
<source>Type</source>
<target>Typ</target>
@ -5975,7 +6136,7 @@
</trans-unit>
<trans-unit id="31d8d7f29ddbd3f64d374a132ddacd5e4a0835a2" datatype="html">
<source>Inputs &amp; Outputs</source>
<target>In- och utdata</target>
<target>Inputs &amp; Outputs</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">292</context>
@ -6203,7 +6364,7 @@
</trans-unit>
<trans-unit id="ac0c4b49e44c42db35ddf590fb5f78375a891b01" datatype="html">
<source>other inputs</source>
<target>annan indata</target>
<target>andra inputs</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/tx-bowtie-graph-tooltip/tx-bowtie-graph-tooltip.component.html</context>
<context context-type="linenumber">12</context>
@ -6440,21 +6601,12 @@
</context-group>
<note priority="1" from="description">fees-box.transaction-fees</note>
</trans-unit>
<trans-unit id="c385e9c0bacd3003ae141bcef7b2193aec618937" datatype="html">
<source>Mempool Goggles</source>
<target>Mempool Goggles</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
<note priority="1" from="description">dashboard.mempool-goggles</note>
</trans-unit>
<trans-unit id="4fe744df6d36b5e9b0afab728b77fc635b99f040" datatype="html">
<source>Recent Replacements</source>
<target>Senaste ersättningarna</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">64</context>
<context context-type="linenumber">65</context>
</context-group>
<note priority="1" from="description">dashboard.recent-rbf-replacements</note>
</trans-unit>
@ -6463,7 +6615,7 @@
<target>Tidigare avgift</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">72</context>
</context-group>
<note priority="1" from="description">dashboard.previous-transaction-fee</note>
</trans-unit>
@ -6472,7 +6624,7 @@
<target>Ny avgift</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">73</context>
</context-group>
<note priority="1" from="description">dashboard.new-transaction-fee</note>
</trans-unit>
@ -6481,7 +6633,7 @@
<target>Senaste transaktionerna</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">130</context>
<context context-type="linenumber">131</context>
</context-group>
<note priority="1" from="description">dashboard.recent-transactions</note>
</trans-unit>
@ -6490,11 +6642,11 @@
<target>Liquidfederationsinnehav</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">164</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">304</context>
<context context-type="linenumber">305</context>
</context-group>
<note priority="1" from="description">liquid.federation-holdings</note>
</trans-unit>
@ -6503,11 +6655,11 @@
<target>Federationens timelock-utgågna UTXOs</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">173</context>
<context context-type="linenumber">174</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">313</context>
<context context-type="linenumber">314</context>
</context-group>
<note priority="1" from="description">liquid.federation-expired-utxos</note>
</trans-unit>
@ -6516,11 +6668,11 @@
<target>L-BTC-tillgångar mot BTC-tillgångar</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">183</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">323</context>
<context context-type="linenumber">324</context>
</context-group>
<note priority="1" from="description">dashboard.lbtc-supply-against-btc-holdings</note>
</trans-unit>
@ -6529,7 +6681,7 @@
<target>Minimumavgift</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">274</context>
<context context-type="linenumber">275</context>
</context-group>
<note priority="1" from="description">Minimum mempool fee</note>
<note priority="1" from="meaning">dashboard.minimum-fee</note>
@ -6539,7 +6691,7 @@
<target>Förkastar</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">275</context>
<context context-type="linenumber">276</context>
</context-group>
<note priority="1" from="description">Purgin below fee</note>
<note priority="1" from="meaning">dashboard.purging</note>
@ -6549,7 +6701,7 @@
<target>Indexering pågår</target>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">363</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -406,39 +406,114 @@
<note priority="1" from="description">sat</note>
<note priority="1" from="meaning">shared.sat</note>
</trans-unit>
<trans-unit id="7159011509695804248" datatype="html">
<source>maximum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-fee-graph.component.ts</context>
<context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c" datatype="html">
<source>Next Block</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-fee-graph.component.ts</context>
<context context-type="linenumber">66</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">28</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
<context context-type="linenumber">87</context>
</context-group>
</trans-unit>
<trans-unit id="f24773075af97666c0feca0e883c2585712fe597" datatype="html">
<source>Your transaction</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">35</context>
</context-group>
<note priority="1" from="description">accelerator.your-transaction</note>
</trans-unit>
<trans-unit id="bee6b649ee82d9a7cde233070b665eec7c531b1d" datatype="html">
<source>Plus <x id="INTERPOLATION" equiv-text="{{ estimate.txSummary.ancestorCount - 1 }}"/> unconfirmed ancestor(s)</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">39</context>
</context-group>
<note priority="1" from="description">accelerator.plus-unconfirmed-ancestors</note>
</trans-unit>
<trans-unit id="54c58b39481f1749fce23fa8a77f616eee84d761" datatype="html">
<source>Virtual size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">44</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
<context context-type="linenumber">59</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
<context context-type="linenumber">25</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">189</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">317</context>
</context-group>
<note priority="1" from="description">Transaction Virtual Size</note>
<note priority="1" from="meaning">transaction.vsize</note>
</trans-unit>
<trans-unit id="adbeb446bf941afda4d4a923b5e4ce0cf4a1c1b8" datatype="html">
<source>In-band fees</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">53</context>
</context-group>
<note priority="1" from="description">accelerator.in-band-fees</note>
</trans-unit>
<trans-unit id="e4b2d9e6a2ab9e6ca34027ec03beaac42b7badd4" datatype="html">
<source>sats</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">59</context>
<context context-type="linenumber">55</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">77</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">118</context>
<context context-type="linenumber">109</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">127</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">139</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">156</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">190</context>
<context context-type="linenumber">179</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">213</context>
<context context-type="linenumber">200</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/calculator/calculator.component.html</context>
@ -502,19 +577,35 @@
</context-group>
<note priority="1" from="description">shared.sats</note>
</trans-unit>
<trans-unit id="8611a038eb243bbed95bf5ff49af4129f22dc55a" datatype="html">
<source>How much more are you willing to pay?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">68</context>
</context-group>
<note priority="1" from="description">accelerator.pay-how-much</note>
</trans-unit>
<trans-unit id="4487eb902b70d33b4bb7a0828b66afec3a96fc18" datatype="html">
<source>Choose the maximum extra transaction fee you&apos;re willing to pay to get into the next block.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">71</context>
</context-group>
<note priority="1" from="description">accelerator.transaction-fee-description</note>
</trans-unit>
<trans-unit id="0b537472d5f7518ed2c2c2b747997b0447ec5ee8" datatype="html">
<source>Next block market rate</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">95</context>
</context-group>
<note priority="1" from="description">accelerator.next-block-rate</note>
</trans-unit>
<trans-unit id="d2eb45d1cd8cd146b7cb0223ab97a4b03b614060" datatype="html">
<source>sat/vB</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">108</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">198</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/fee-rate/fee-rate.component.html</context>
@ -527,6 +618,119 @@
<note priority="1" from="description">sat/vB</note>
<note priority="1" from="meaning">shared.sat-vbyte</note>
</trans-unit>
<trans-unit id="c2836a2964adf9e369ee0a1ce67f991cf2aa435d" datatype="html">
<source>Estimated extra fee required</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">103</context>
</context-group>
<note priority="1" from="description">accelerator.estimated-extra-fee-required</note>
</trans-unit>
<trans-unit id="26e50fa97db4eecde26ff892d725e61ca9201c48" datatype="html">
<source>Mempool Accelerator™ fees</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<note priority="1" from="description">accelerator.mempool-accelerator-fees</note>
</trans-unit>
<trans-unit id="1ec82428244c76064090ea5a55827e3fada82306" datatype="html">
<source>Accelerator Service Fee</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">121</context>
</context-group>
<note priority="1" from="description">accelerator.service-fee</note>
</trans-unit>
<trans-unit id="7d07b80b17dfab3582807759420b8d723c9e4414" datatype="html">
<source>Transaction Size Surcharge</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">133</context>
</context-group>
<note priority="1" from="description">accelerator.tx-size-surcharge</note>
</trans-unit>
<trans-unit id="004732b44df582a2d24e2abbd3f46bc42ae8c546" datatype="html">
<source>Estimated acceleration cost</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">148</context>
</context-group>
<note priority="1" from="description">accelerator.estimated-cost</note>
</trans-unit>
<trans-unit id="c9ec95585f57bd87212693db7cb00d9ed70d49b1" datatype="html">
<source>Maximum acceleration cost</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">171</context>
</context-group>
<note priority="1" from="description">accelerator.maximum-cost</note>
</trans-unit>
<trans-unit id="f3ff11006f77909b9fca2e0fda0a72b097cd76de" datatype="html">
<source>Available balance</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">195</context>
</context-group>
<note priority="1" from="description">accelerator.available-balance</note>
</trans-unit>
<trans-unit id="ba4f24bf9bf3dc4db3d6bc1b8b63339295f0b806" datatype="html">
<source>Sign In</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">214</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/menu/menu.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">26</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">31</context>
</context-group>
<note priority="1" from="description">shared.sign-in</note>
</trans-unit>
<trans-unit id="2504ca478a61c5e53f9ed55e9aeb3e8f2d01b3eb" datatype="html">
<source>Accelerate on mempool.space</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">223</context>
</context-group>
<note priority="1" from="description">accelerator.accelerate-on-mempoolspace</note>
</trans-unit>
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
<source>Accelerate</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">235</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">106</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">145</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">155</context>
</context-group>
<note priority="1" from="description">Accelerate button label</note>
<note priority="1" from="meaning">transaction.accelerate</note>
</trans-unit>
<trans-unit id="2bec172478fbbbe6536a662f5d4d3d711c208b09" datatype="html">
<source>If your tx is accelerated to ~<x id="INTERPOLATION" equiv-text="{{ i | number : &apos;1.0-0&apos; }}"/> sat/vB</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/accelerate-preview/accelerate-preview.component.html</context>
<context context-type="linenumber">249</context>
</context-group>
<note priority="1" from="description">accelerator.accelerated-to-description</note>
</trans-unit>
<trans-unit id="bcf34abc2d9ed8f45a2f65dd464c46694e9a181e" datatype="html">
<source>Acceleration Fees</source>
<context-group purpose="location">
@ -675,7 +879,11 @@
<context context-type="sourcefile">src/app/components/acceleration/accelerations-list/accelerations-list.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<note priority="1" from="description">master-page.blocks</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/acceleration/accelerator-dashboard/accelerator-dashboard.component.html</context>
<context context-type="linenumber">41</context>
</context-group>
<note priority="1" from="description">accelerator.accelerations</note>
</trans-unit>
<trans-unit id="94c248797dd2b6af49068cb49c3b4bc26bec6a16" datatype="html">
<source>TXID</source>
@ -689,11 +897,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">71</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">134</context>
</context-group>
<note priority="1" from="description">dashboard.latest-transactions.txid</note>
</trans-unit>
@ -764,7 +972,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">73</context>
<context context-type="linenumber">74</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channels-list/channels-list.component.html</context>
@ -840,14 +1048,6 @@
</context-group>
<note priority="1" from="description">mining.3-months</note>
</trans-unit>
<trans-unit id="f26767fd3fbdc174a0f961fc538d10f80eaec6d8" datatype="html">
<source>Mempool Goggles: Accelerations</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/acceleration/accelerator-dashboard/accelerator-dashboard.component.html</context>
<context context-type="linenumber">41</context>
</context-group>
<note priority="1" from="description">dashboard.mempool-goggles-accelerations</note>
</trans-unit>
<trans-unit id="97ff5554c708164d58b14e45072acbcbf9f4d137" datatype="html">
<source>View more »</source>
<context-group purpose="location">
@ -1117,7 +1317,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">145</context>
<context context-type="linenumber">146</context>
</context-group>
<note priority="1" from="description">shared.confidential</note>
</trans-unit>
@ -1597,7 +1797,7 @@
<context context-type="sourcefile">src/app/components/block-filters/block-filters.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<note priority="1" from="description">Mempool Goggles tooltip</note>
<note priority="1" from="description">Mempool Goggles tooltip</note>
</trans-unit>
<trans-unit id="7cbedd89f60daafaf0e56363900d666a4e02ffb1" datatype="html">
<source>beta</source>
@ -1631,21 +1831,21 @@
</context-group>
<note priority="1" from="description">mempool-goggles.any</note>
</trans-unit>
<trans-unit id="f6314b04b5349b89ea90a88eca7abd4a8e1129c0" datatype="html">
<source>Gradient</source>
<trans-unit id="360b9f5c32209001518dbd1dc512f25291473b79" datatype="html">
<source>Tint</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-filters/block-filters.component.html</context>
<context context-type="linenumber">30</context>
</context-group>
<note priority="1" from="description">mempool-goggles.gradient</note>
<note priority="1" from="description">mempool-goggles.tint</note>
</trans-unit>
<trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">
<source>Default</source>
<trans-unit id="4cfabb48965febabe67eb491a3b7e58555d3d52a" datatype="html">
<source>Classic</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-filters/block-filters.component.html</context>
<context context-type="linenumber">33</context>
</context-group>
<note priority="1" from="description">mempool-goggles.default</note>
<note priority="1" from="description">mempool-goggles.classic</note>
</trans-unit>
<trans-unit id="2e6be334a2152f179a557167f98ce4459ff9a2f9" datatype="html">
<source>Age</source>
@ -1853,7 +2053,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">135</context>
</context-group>
<note priority="1" from="description">dashboard.latest-transactions.amount</note>
</trans-unit>
@ -1881,7 +2081,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">136</context>
<context context-type="linenumber">137</context>
</context-group>
<note priority="1" from="description">Transaction fee</note>
<note priority="1" from="meaning">transaction.fee</note>
@ -1937,27 +2137,6 @@
<note priority="1" from="description">Effective transaction fee rate</note>
<note priority="1" from="meaning">transaction.effective-fee-rate</note>
</trans-unit>
<trans-unit id="54c58b39481f1749fce23fa8a77f616eee84d761" datatype="html">
<source>Virtual size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
<context context-type="linenumber">59</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
<context context-type="linenumber">25</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">189</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">317</context>
</context-group>
<note priority="1" from="description">Transaction Virtual Size</note>
<note priority="1" from="meaning">transaction.vsize</note>
</trans-unit>
<trans-unit id="13f5a75f3e01e5924e45052d2f336eda8bac37e8" datatype="html">
<source>Weight</source>
<context-group purpose="location">
@ -2181,7 +2360,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">108</context>
</context-group>
</trans-unit>
<trans-unit id="919f2fd60a898850c24b1584362bbf18a4628bcb" datatype="html">
@ -2392,22 +2571,6 @@
<note priority="1" from="description">Block reorg</note>
<note priority="1" from="meaning">block.reorged</note>
</trans-unit>
<trans-unit id="bdf0e930eb22431140a2eaeacd809cc5f8ebd38c" datatype="html">
<source>Next Block</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
<context context-type="linenumber">28</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
<context context-type="linenumber">87</context>
</context-group>
<note priority="1" from="description">Next Block</note>
</trans-unit>
<trans-unit id="a0e07a711d171f4d40dd388d70ed32f9b8101e0a" datatype="html">
<source>Previous Block</source>
<context-group purpose="location">
@ -2479,6 +2642,14 @@
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
<context context-type="linenumber">323</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/api.service.ts</context>
<context context-type="linenumber">254</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/api.service.ts</context>
<context context-type="linenumber">267</context>
</context-group>
<note priority="1" from="description">unknown</note>
</trans-unit>
<trans-unit id="b2cb12c1680a46464cae5aa0d0d1d6914733a75d" datatype="html">
@ -2841,7 +3012,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">104</context>
<context context-type="linenumber">105</context>
</context-group>
<note priority="1" from="description">latest-blocks.height</note>
</trans-unit>
@ -2929,11 +3100,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">283</context>
<context context-type="linenumber">284</context>
</context-group>
<note priority="1" from="description">dashboard.txs</note>
</trans-unit>
@ -3001,7 +3172,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">287</context>
<context context-type="linenumber">288</context>
</context-group>
<note priority="1" from="description">Memory usage</note>
<note priority="1" from="meaning">dashboard.memory-usage</note>
@ -3018,7 +3189,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">281</context>
<context context-type="linenumber">282</context>
</context-group>
<note priority="1" from="description">Unconfirmed count</note>
<note priority="1" from="meaning">dashboard.unconfirmed</note>
@ -3365,7 +3536,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">47</context>
<context context-type="linenumber">48</context>
</context-group>
<note priority="1" from="description">dashboard.incoming-transactions</note>
</trans-unit>
@ -4147,22 +4318,6 @@
<context context-type="linenumber">328</context>
</context-group>
</trans-unit>
<trans-unit id="ba4f24bf9bf3dc4db3d6bc1b8b63339295f0b806" datatype="html">
<source>Sign In</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/menu/menu.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">26</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
<context context-type="linenumber">31</context>
</context-group>
<note priority="1" from="description">shared.sign-in</note>
</trans-unit>
<trans-unit id="26e78cd052d05a0c1a7db43fac8df52ec6950672" datatype="html">
<source>Reward stats</source>
<context-group purpose="location">
@ -4187,7 +4342,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">98</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
@ -4392,22 +4547,26 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">205</context>
<context context-type="linenumber">206</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">208</context>
<context context-type="linenumber">209</context>
</context-group>
</trans-unit>
<trans-unit id="3666195172774554282" datatype="html">
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">203</context>
<context context-type="linenumber">186</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">207</context>
<context context-type="linenumber">204</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
<context context-type="linenumber">208</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
@ -4589,11 +4748,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">85</context>
<context context-type="linenumber">86</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">105</context>
<context context-type="linenumber">106</context>
</context-group>
<note priority="1" from="description">latest-blocks.mined</note>
</trans-unit>
@ -4695,7 +4854,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">86</context>
<context context-type="linenumber">87</context>
</context-group>
<note priority="1" from="description">transaction.full-rbf</note>
</trans-unit>
@ -4734,7 +4893,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">87</context>
<context context-type="linenumber">88</context>
</context-group>
<note priority="1" from="description">RBF</note>
<note priority="1" from="meaning">tx-features.tag.rbf</note>
@ -5446,19 +5605,6 @@
<note priority="1" from="description">Transaction ETA in several hours or more</note>
<note priority="1" from="meaning">transaction.eta.in-several-hours</note>
</trans-unit>
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
<source>Accelerate</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">145</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">155</context>
</context-group>
<note priority="1" from="description">Accelerate button label</note>
<note priority="1" from="meaning">transaction.accelerate</note>
</trans-unit>
<trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">
<source>Type</source>
<context-group purpose="location">
@ -5958,19 +6104,11 @@
</context-group>
<note priority="1" from="description">fees-box.transaction-fees</note>
</trans-unit>
<trans-unit id="c385e9c0bacd3003ae141bcef7b2193aec618937" datatype="html">
<source>Mempool Goggles</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">21</context>
</context-group>
<note priority="1" from="description">dashboard.mempool-goggles</note>
</trans-unit>
<trans-unit id="4fe744df6d36b5e9b0afab728b77fc635b99f040" datatype="html">
<source>Recent Replacements</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">64</context>
<context context-type="linenumber">65</context>
</context-group>
<note priority="1" from="description">dashboard.recent-rbf-replacements</note>
</trans-unit>
@ -5978,7 +6116,7 @@
<source>Previous fee</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">72</context>
</context-group>
<note priority="1" from="description">dashboard.previous-transaction-fee</note>
</trans-unit>
@ -5986,7 +6124,7 @@
<source>New fee</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">73</context>
</context-group>
<note priority="1" from="description">dashboard.new-transaction-fee</note>
</trans-unit>
@ -5994,7 +6132,7 @@
<source>Recent Transactions</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">130</context>
<context context-type="linenumber">131</context>
</context-group>
<note priority="1" from="description">dashboard.recent-transactions</note>
</trans-unit>
@ -6002,11 +6140,11 @@
<source>Liquid Federation Holdings</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">164</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">304</context>
<context context-type="linenumber">305</context>
</context-group>
<note priority="1" from="description">liquid.federation-holdings</note>
</trans-unit>
@ -6014,11 +6152,11 @@
<source>Federation Timelock-Expired UTXOs</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">173</context>
<context context-type="linenumber">174</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">313</context>
<context context-type="linenumber">314</context>
</context-group>
<note priority="1" from="description">liquid.federation-expired-utxos</note>
</trans-unit>
@ -6026,11 +6164,11 @@
<source>L-BTC Supply Against BTC Holdings</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">183</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">323</context>
<context context-type="linenumber">324</context>
</context-group>
<note priority="1" from="description">dashboard.lbtc-supply-against-btc-holdings</note>
</trans-unit>
@ -6038,7 +6176,7 @@
<source>Minimum fee</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">274</context>
<context context-type="linenumber">275</context>
</context-group>
<note priority="1" from="description">Minimum mempool fee</note>
<note priority="1" from="meaning">dashboard.minimum-fee</note>
@ -6047,7 +6185,7 @@
<source>Purging</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">275</context>
<context context-type="linenumber">276</context>
</context-group>
<note priority="1" from="description">Purgin below fee</note>
<note priority="1" from="meaning">dashboard.purging</note>
@ -6056,7 +6194,7 @@
<source>Indexing in progress</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">363</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>

File diff suppressed because it is too large Load Diff

View File

@ -7,15 +7,15 @@
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"module": "ES2022",
"module": "ES2020",
"moduleResolution": "node",
"importHelpers": true,
"target": "ES2022",
"target": "ES2020",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"ES2022",
"ES2020",
"dom",
"dom.iterable"
]

View File

@ -2,7 +2,7 @@
"extends": "./tsconfig.app.json",
"compilerOptions": {
"outDir": "./out-tsc/server",
"target": "ES2022",
"target": "ES2020",
"sourceMap": true,
"types": [
"node"