Compare commits

..

28 Commits

Author SHA1 Message Date
wiz
ead7613579 Merge pull request #4877 from mempool/nymkappa/truncate-hashrate-difficulty
[migration] re-index hashrates and difficulty_adjustments
2024-04-04 11:05:16 +09:00
wiz
ca0613ec17 Merge pull request #4876 from mempool/knorrium/change_default_replication_settings
Update default settings for Docker
2024-04-04 11:05:04 +09:00
nymkappa
727208ff84 [migration] re-index hashrates and difficulty_adjustments 2024-04-04 10:57:54 +09:00
Felipe Knorr Kuhn
53c3de2af5 Update default settings for Docker 2024-04-04 10:49:32 +09:00
softsimon
3f50d57ed1 Fix test broke due to i18n key change 2024-04-03 21:44:48 +09:00
softsimon
37cb9b0fe8 Merge pull request #4872 from mempool/natsoni/fix-fiat-selector-sorting
Sort currency by ticker in fiat selector
2024-04-03 18:57:24 +09:00
softsimon
a3b5f79094 Merge pull request #4871 from mempool/natsoni/fix-liquid-testnet
Fix Liquid testnet broken blocks
2024-04-03 18:55:55 +09:00
softsimon
1b1ffa7109 Transifex pull 04-03 2024-04-03 18:47:16 +09:00
softsimon
2b3021c8fe Merge pull request #4873 from mempool/simon/i18n-improvements-04-02
i18n corrections and merging
2024-04-03 18:18:29 +09:00
softsimon
0ccc47786d Merge pull request #4874 from mempool/knorrium/fix_docker_for_rust
Fix the Docker workflow for the new Rust steps
2024-04-03 18:17:06 +09:00
softsimon
24366b929e i18n corrections and merging 2024-04-03 18:13:42 +09:00
Felipe Knorr Kuhn
2cab2a7885 Read FD from the environment variables 2024-04-03 18:13:14 +09:00
Felipe Knorr Kuhn
4284038c4b Fix error when deleting the missing @napi-rs folder 2024-04-03 18:12:51 +09:00
Felipe Knorr Kuhn
425d158777 Update Dockerfile to work with the new Rust steps 2024-04-03 18:12:26 +09:00
Felipe Knorr Kuhn
1a11b1813f Add more build contexts for the backend and rust-gbt 2024-04-03 18:11:58 +09:00
wiz
85a86d4b06 ops: Add backend git hash check 2024-04-03 17:28:58 +09:00
natsoni
073578243c Fix fiat selector sorting 2024-04-03 16:34:56 +09:00
wiz
69578f8086 Merge pull request #4820 from mempool/nymkappa/polish-enterprise-logo
[enterprise] polish enterprise logo
2024-04-03 16:17:37 +09:00
wiz
ec92f83a58 Merge pull request #4865 from mempool/mononaut/public-acceleration-config
Public acceleration config
2024-04-03 16:16:36 +09:00
wiz
37c0adbbfa Merge pull request #4868 from mempool/natsoni/fix-global-footer
Fix footer position
2024-04-03 16:15:57 +09:00
natsoni
e9c40692a6 Fix network switch mechanism 2024-04-03 16:09:30 +09:00
natsoni
4efd0dda83 Push footer down when content is less than window height 2024-04-03 11:28:25 +09:00
Felipe Knorr Kuhn
3a2aad645b Merge branch 'master' into mononaut/public-acceleration-config 2024-04-02 21:31:28 +09:00
Felipe Knorr Kuhn
9908ec01aa Merge branch 'master' into mononaut/public-acceleration-config 2024-04-02 20:53:01 +09:00
Mononaut
3d900bdfe5 Enable PUBLIC_ACCELERATIONS in mainnet prod 2024-04-02 08:24:57 +00:00
Mononaut
b32cce1440 Restrict public acceleration APIs to mainnet 2024-04-02 08:23:38 +00:00
Mononaut
37aee77eb4 Add config for public acceleration data 2024-04-02 08:19:35 +00:00
nymkappa
f4b9301f55 [enterprise] polish enterprise logo 2024-03-26 11:36:20 +09:00
64 changed files with 67580 additions and 69078 deletions

View File

@@ -101,5 +101,7 @@ jobs:
--platform linux/amd64,linux/arm64 \
--tag ${{ secrets.DOCKER_HUB_USER }}/${{ matrix.service }}:$TAG \
--tag ${{ secrets.DOCKER_HUB_USER }}/${{ matrix.service }}:latest \
--build-context rustgbt=./rust \
--build-context backend=./backend \
--output "type=registry" ./${{ matrix.service }}/ \
--build-arg commitHash=$SHORT_SHA

View File

@@ -3,7 +3,7 @@ set -e
# Cleaning up inside the node_modules folder
cd package/node_modules
rm -r \
rm -rf \
typescript \
@typescript-eslint \
@napi-rs

View File

@@ -652,6 +652,10 @@ class DatabaseMigration {
await this.$executeQuery('ALTER TABLE `prices` ADD `THB` float DEFAULT "-1"');
await this.$executeQuery('ALTER TABLE `prices` ADD `TRY` float DEFAULT "-1"');
await this.$executeQuery('ALTER TABLE `prices` ADD `ZAR` float DEFAULT "-1"');
await this.$executeQuery('TRUNCATE hashrates');
await this.$executeQuery('TRUNCATE difficulty_adjustments');
await this.updateToSchemaVersion(75);
}

View File

@@ -11,10 +11,17 @@ RUN apt-get install -y build-essential python3 pkg-config curl ca-certificates
# Install Rust via rustup
RUN CPU_ARCH=$(uname -m); if [ "$CPU_ARCH" = "armv7l" ]; then c_rehash; fi
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
#RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
#Workaround to run on github actions from https://github.com/rust-lang/rustup/issues/2700#issuecomment-1367488985
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sed 's#/proc/self/exe#\/bin\/sh#g' | sh -s -- -y --default-toolchain stable
ENV PATH="/root/.cargo/bin:$PATH"
COPY --from=backend . .
COPY --from=rustgbt . ../rust/
ENV FD=/build/rust-gbt
RUN npm install --omit=dev --omit=optional
WORKDIR /build
RUN npm run package
FROM node:20.12.0-buster-slim

View File

@@ -134,8 +134,8 @@ __MAXMIND_GEOLITE2_ASN__=${MAXMIND_GEOLITE2_ASN:="/backend/GeoIP/GeoLite2-ASN.mm
__MAXMIND_GEOIP2_ISP__=${MAXMIND_GEOIP2_ISP:=""}
# REPLICATION
__REPLICATION_ENABLED__=${REPLICATION_ENABLED:=true}
__REPLICATION_AUDIT__=${REPLICATION_AUDIT:=true}
__REPLICATION_ENABLED__=${REPLICATION_ENABLED:=false}
__REPLICATION_AUDIT__=${REPLICATION_AUDIT:=false}
__REPLICATION_AUDIT_START_HEIGHT__=${REPLICATION_AUDIT_START_HEIGHT:=774000}
__REPLICATION_SERVERS__=${REPLICATION_SERVERS:=[]}
@@ -149,7 +149,7 @@ __REDIS_UNIX_SOCKET_PATH__=${REDIS_UNIX_SOCKET_PATH:=true}
__REDIS_BATCH_QUERY_BASE_SIZE__=${REDIS_BATCH_QUERY_BASE_SIZE:=5000}
# FIAT_PRICE
__FIAT_PRICE_ENABLED__=${FIAT_PRICE_ENABLED:=true}
__FIAT_PRICE_ENABLED__=${FIAT_PRICE_ENABLED:=false}
__FIAT_PRICE_API_KEY__=${FIAT_PRICE_API_KEY:=""}
mkdir -p "${__MEMPOOL_CACHE_DIR__}"

View File

@@ -37,6 +37,7 @@ __MAINNET_BLOCK_AUDIT_START_HEIGHT__=${MAINNET_BLOCK_AUDIT_START_HEIGHT:=0}
__TESTNET_BLOCK_AUDIT_START_HEIGHT__=${TESTNET_BLOCK_AUDIT_START_HEIGHT:=0}
__SIGNET_BLOCK_AUDIT_START_HEIGHT__=${SIGNET_BLOCK_AUDIT_START_HEIGHT:=0}
__ACCELERATOR__=${ACCELERATOR:=false}
__PUBLIC_ACCELERATIONS__=${PUBLIC_ACCELERATIONS:=false}
__HISTORICAL_PRICE__=${HISTORICAL_PRICE:=true}
__ADDITIONAL_CURRENCIES__=${ADDITIONAL_CURRENCIES:=false}
@@ -62,6 +63,7 @@ export __MAINNET_BLOCK_AUDIT_START_HEIGHT__
export __TESTNET_BLOCK_AUDIT_START_HEIGHT__
export __SIGNET_BLOCK_AUDIT_START_HEIGHT__
export __ACCELERATOR__
export __PUBLIC_ACCELERATIONS__
export __HISTORICAL_PRICE__
export __ADDITIONAL_CURRENCIES__

View File

@@ -67,7 +67,7 @@ describe('Mainnet', () => {
cy.get('[id^="bitcoin-block-"]').should('have.length', 22);
cy.get('.footer').should('be.visible');
cy.get('.row > :nth-child(1)').invoke('text').then((text) => {
expect(text).to.match(/Incoming transactions.* vB\/s/);
expect(text).to.match(/Incoming Transactions.* vB\/s/);
});
cy.get('.row > :nth-child(2)').invoke('text').then((text) => {
expect(text).to.match(/Unconfirmed:(.*)/);

View File

@@ -21,5 +21,6 @@
"LIGHTNING": false,
"HISTORICAL_PRICE": true,
"ADDITIONAL_CURRENCIES": false,
"ACCELERATOR": false
"ACCELERATOR": false,
"PUBLIC_ACCELERATIONS": false
}

View File

@@ -187,7 +187,7 @@ export class BlockHealthGraphComponent implements OnInit {
series: data.length === 0 ? undefined : [
{
zlevel: 0,
name: $localize`Health`,
name: $localize`:@@d2bcd3296d2850de762fb943060b7e086a893181:Health`,
data: data.map(health => ({
value: health[2],
block: health[1],

View File

@@ -29,7 +29,7 @@
<td class="value"><i><app-time kind="span" [time]="time - relativeTime"></app-time></i></td>
</ng-container>
<ng-container *ngSwitchCase="'mined'">
<td class="label" i18n="transaction.confirmed-after|Transaction confirmed after">Confirmed</td>
<td class="label" i18n="transaction.confirmed|Transaction confirmed state">Confirmed</td>
<td class="value"><i><app-time kind="span" [time]="relativeTime - time"></app-time></i></td>
</ng-container>
</ng-container>
@@ -68,15 +68,15 @@
<td class="value">
<ng-container [ngSwitch]="tx?.status">
<span *ngSwitchCase="'found'" class="badge badge-success" i18n="transaction.audit.match">Match</span>
<span *ngSwitchCase="'censored'" class="badge badge-danger" i18n="transaction.audit.removed">Removed</span>
<span *ngSwitchCase="'censored'" class="badge badge-danger" i18n="transaction.audit.removed|Transaction removed state">Removed</span>
<span *ngSwitchCase="'missing'" class="badge badge-warning" i18n="transaction.audit.marginal">Marginal fee rate</span>
<span *ngSwitchCase="'sigop'" class="badge badge-warning" i18n="transaction.audit.sigop">High sigop count</span>
<span *ngSwitchCase="'fresh'" class="badge badge-warning" i18n="transaction.audit.recently-broadcasted">Recently broadcasted</span>
<span *ngSwitchCase="'freshcpfp'" class="badge badge-warning" i18n="transaction.audit.recently-cpfped">Recently CPFP'd</span>
<span *ngSwitchCase="'added'" class="badge badge-warning" i18n="transaction.audit.added">Added</span>
<span *ngSwitchCase="'prioritized'" class="badge badge-warning" i18n="transaction.audit.prioritized">Prioritized</span>
<span *ngSwitchCase="'added'" class="badge badge-warning" i18n="tx-features.tag.added|Added">Added</span>
<span *ngSwitchCase="'prioritized'" class="badge badge-warning" i18n="tx-features.tag.prioritized|Prioritized">Prioritized</span>
<span *ngSwitchCase="'selected'" class="badge badge-warning" i18n="transaction.audit.marginal">Marginal fee rate</span>
<span *ngSwitchCase="'rbf'" class="badge badge-warning" i18n="transaction.audit.conflicting">Conflicting</span>
<span *ngSwitchCase="'rbf'" class="badge badge-warning" i18n="tx-features.tag.conflict|Conflict">Conflict</span>
<span *ngSwitchCase="'accelerated'" class="badge badge-accelerated" i18n="transaction.audit.accelerated">Accelerated</span>
</ng-container>
</td>

View File

@@ -2,7 +2,7 @@ import { Component, OnInit, OnDestroy, ViewChildren, QueryList, Inject, PLATFORM
import { Location } from '@angular/common';
import { ActivatedRoute, ParamMap, Router } from '@angular/router';
import { ElectrsApiService } from '../../services/electrs-api.service';
import { switchMap, tap, throttleTime, catchError, map, shareReplay, startWith } from 'rxjs/operators';
import { switchMap, tap, throttleTime, catchError, map, shareReplay, startWith, filter } from 'rxjs/operators';
import { Transaction, Vout } from '../../interfaces/electrs.interface';
import { Observable, of, Subscription, asyncScheduler, EMPTY, combineLatest, forkJoin } from 'rxjs';
import { StateService } from '../../services/state.service';
@@ -484,6 +484,7 @@ export class BlockComponent implements OnInit, OnDestroy {
});
this.oobSubscription = block$.pipe(
filter(() => this.stateService.env.PUBLIC_ACCELERATIONS === true && this.stateService.network === ''),
switchMap((block) => this.apiService.getAccelerationsByHeight$(block.height)
.pipe(
map(accelerations => {

View File

@@ -65,7 +65,7 @@ export class BlocksList implements OnInit {
if (!this.widget) {
this.websocketService.want(['blocks']);
this.seoService.setTitle($localize`:@@meta.title.blocks-list:Blocks`);
this.seoService.setTitle($localize`:@@8a7b4bd44c0ac71b2e72de0398b303257f7d2f54:Blocks`);
this.ogService.setManualOgImage('recent-blocks.jpg');
if( this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet' ) {
this.seoService.setDescription($localize`:@@meta.description.liquid.blocks:See the most recent Liquid${seoDescriptionNetwork(this.stateService.network)} blocks along with basic stats such as block height, block size, and more.`);

View File

@@ -13,10 +13,10 @@ import { StateService } from '../../services/state.service';
export class FiatSelectorComponent implements OnInit {
fiatForm: UntypedFormGroup;
currencies = Object.entries(fiatCurrencies).sort((a: any, b: any) => {
if (a[1].name < b[1].name) {
if (a[1].code < b[1].code) {
return -1;
}
if (a[1].name > b[1].name) {
if (a[1].code > b[1].code) {
return 1;
}
return 0;

View File

@@ -2,7 +2,7 @@
<div class="container-xl">
<div class="row text-center" *ngIf="mempoolInfoData$ | async as mempoolInfoData">
<div class="col d-none d-sm-block">
<span class="txPerSecond" i18n="dashboard.incoming-transactions">Incoming transactions</span>&nbsp;
<span class="txPerSecond" i18n="dashboard.incoming-transactions">Incoming Transactions</span>&nbsp;
<ng-template [ngIf]="(isLoadingWebSocket$ | async) === false && mempoolInfoData" [ngIfElse]="loadingTransactions">
<span *ngIf="(mempoolLoadingStatus$ | async) !== 100; else inSync">
&nbsp;<span class="badge badge-pill badge-warning"><ng-container i18n="dashboard.backend-is-synchronizing">Backend is synchronizing</ng-container> ({{ mempoolLoadingStatus$ | async }}%)</span>

View File

@@ -78,7 +78,7 @@
<a class="nav-link" [routerLink]="['/assets' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'database']" [fixedWidth]="true" i18n-title="master-page.assets" title="Assets"></fa-icon></a>
</li>
<li class="nav-item mr-2" routerLinkActive="active" id="btn-docs">
<a class="nav-link" [routerLink]="['/docs' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'book']" [fixedWidth]="true" i18n-title="master-page.docs" title="Docs"></fa-icon></a>
<a class="nav-link" [routerLink]="['/docs' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'book']" [fixedWidth]="true" i18n-title="documentation.title" title="Documentation"></fa-icon></a>
</li>
<li class="nav-item" routerLinkActive="active" id="btn-about">
<a class="nav-link" [routerLink]="['/about']" (click)="collapse()"><fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true" i18n-title="master-page.about" title="About"></fa-icon></a>

View File

@@ -12,7 +12,7 @@
<th class="timestamp text-left" i18n="shared.date" [ngClass]="{'widget': widget}">Date</th>
<th class="expires-in text-left" *ngIf="!widget && showExpiredUtxos === false" i18n="liquid.expires-in">Expires in</th>
<th class="expires-in text-left" *ngIf="!widget && showExpiredUtxos === true" i18n="liquid.expired-since">Expired since</th>
<th class="is-dust text-right" *ngIf="!widget && showExpiredUtxos === true" i18n="liquid.is-dust">Is Dust</th>
<th class="is-dust text-right" *ngIf="!widget && showExpiredUtxos === true" i18n="liquid.dust">Dust</th>
</thead>
<tbody *ngIf="federationUtxos$ | async as utxos; else skeleton" [style]="isLoading ? 'opacity: 0.75' : ''">
<ng-container *ngIf="widget; else regularRows">
@@ -63,8 +63,11 @@
{{ utxo.blocknumber + utxo.timelock - lastReservesBlockUpdate < 0 ? -(utxo.blocknumber + utxo.timelock - lastReservesBlockUpdate) : utxo.blocknumber + utxo.timelock - lastReservesBlockUpdate }} <span i18n="shared.blocks" class="symbol">blocks</span>
</td>
<td *ngIf="!widget && showExpiredUtxos === true" class="is-dust text-right" [ngStyle]="{ 'color': !utxo.isDust ? '#D81B60' : '' }">
<div i18n="shared.yes" *ngIf="utxo.isDust">Yes</div>
<div i18n="shared.no" *ngIf="!utxo.isDust">No</div>
@if (utxo.isDust) {
} @else {
}
</td>
</tr>
</ng-template>

View File

@@ -9,13 +9,13 @@
<div class="fee-estimation-container">
<div class="item">
<div class="card-text">
<div class="fee-text credit" i18n-ngbTooltip="liquid.peg-ins-volume-day" ngbTooltip="24h Peg-In Volume" placement="top">+{{ (+pegsVolume[0].volume) / 100000000 | number: '1.2-2' }} <span i18n="shared.addresses">BTC</span></div>
<div class="fee-text credit" i18n-ngbTooltip="liquid.peg-ins-volume-day" ngbTooltip="24h Peg-In Volume" placement="top">+{{ (+pegsVolume[0].volume) / 100000000 | number: '1.2-2' }} <span i18n="shared.btc|BTC">BTC</span></div>
<div class="fiat">{{ (+pegsVolume[0].number) }} <span i18n="liquid.peg-ins">Peg-Ins</span></div>
</div>
</div>
<div class="item">
<div class="card-text">
<div class="fee-text debit" i18n-ngbTooltip="liquid.peg-out-volume-day" ngbTooltip="24h Peg-Out Volume" placement="top">{{ (+pegsVolume[1].volume) / 100000000 | number: '1.2-2' }} <span i18n="shared.addresses">BTC</span></div>
<div class="fee-text debit" i18n-ngbTooltip="liquid.peg-out-volume-day" ngbTooltip="24h Peg-Out Volume" placement="top">{{ (+pegsVolume[1].volume) / 100000000 | number: '1.2-2' }} <span i18n="shared.btc|BTC">BTC</span></div>
<div class="fiat">{{ (+pegsVolume[1].number) }} <span i18n="liquid.peg-outs">Peg-Outs</span></div>
</div>
</div>

View File

@@ -159,7 +159,7 @@ export class ReservesRatioComponent implements OnInit, OnChanges {
data: [
{
value: value,
name: 'Assets vs Liabilities'
name: $localize`Assets vs Liabilities`
}
]
}

View File

@@ -15,12 +15,31 @@
<div *ngIf="user === undefined" class="profile_image_container"></div>
</ng-container>
<a class="navbar-brand" [ngClass]="{'dual-logos': subdomain}" [routerLink]="['/' | relativeUrl]" (click)="brandClick($event)">
<ng-template [ngIf]="subdomain && enterpriseInfo">
<div class="subdomain_container">
<img [src]="'/api/v1/services/enterprise/images/' + subdomain + '/logo?imageMd5=' + enterpriseInfo.imageMd5" class="subdomain_logo">
</div>
</ng-template>
<!-- Large screen -->
<a class="navbar-brand d-none d-md-flex" [ngClass]="{'dual-logos': subdomain}" [routerLink]="['/' | relativeUrl]" (click)="brandClick($event)">
<ng-template [ngIf]="subdomain && enterpriseInfo">
<div class="subdomain_container">
<img [src]="'/api/v1/services/enterprise/images/' + subdomain + '/logo?imageMd5=' + enterpriseInfo.imageMd5" class="subdomain_logo" [class]="{'rounded': enterpriseInfo.rounded_corner}">
</div>
<div class="vertical-line"></div>
</ng-template>
<ng-container *ngIf="{ val: connectionState$ | async } as connectionState">
<app-svg-images *ngIf="!officialMempoolSpace" name="mempoolSpace" viewBox="0 0 500 126" class="mempool-logo" [ngStyle]="{'opacity': connectionState.val === 2 ? 1 : 0.5 }"></app-svg-images>
<app-svg-images *ngIf="officialMempoolSpace" name="officialMempoolSpace" viewBox="0 0 500 126"></app-svg-images>
<div class="connection-badge">
<div class="badge badge-warning" *ngIf="connectionState.val === 0" i18n="master-page.offline">Offline</div>
<div class="badge badge-warning" *ngIf="connectionState.val === 1" i18n="master-page.reconnecting">Reconnecting...</div>
</div>
</ng-container>
</a>
<!-- Mobile -->
<a class="navbar-brand d-flex d-md-none justify-content-center" [ngClass]="{'dual-logos': subdomain, 'mr-0': subdomain}" [routerLink]="['/' | relativeUrl]" (click)="brandClick($event)">
<ng-template [ngIf]="subdomain && enterpriseInfo">
<div class="subdomain_container">
<img [src]="'/api/v1/services/enterprise/images/' + subdomain + '/logo?imageMd5=' + enterpriseInfo.imageMd5" class="subdomain_logo" [class]="{'rounded': enterpriseInfo.rounded_corner}">
</div>
<div class="vertical-line"></div>
</ng-template>
<ng-container *ngIf="{ val: connectionState$ | async } as connectionState">
<app-svg-images *ngIf="!officialMempoolSpace" name="mempoolSpace" viewBox="0 0 500 126" class="mempool-logo" [ngStyle]="{'opacity': connectionState.val === 2 ? 1 : 0.5 }"></app-svg-images>
<app-svg-images *ngIf="officialMempoolSpace" name="officialMempoolSpace" viewBox="0 0 500 126"></app-svg-images>
@@ -77,14 +96,14 @@
<a class="nav-link" [routerLink]="['/about']" (click)="collapse()"><fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true" i18n-title="master-page.about" title="About"></fa-icon></a>
</li>
</ul>
<app-search-form [hamburgerOpen]="user != null" class="search-form-container" location="top" (searchTriggered)="collapse()"></app-search-form>
<app-search-form [hamburgerOpen]="enterpriseInfo === null && user != null" class="search-form-container" location="top" (searchTriggered)="collapse()"></app-search-form>
</div>
</nav>
<app-menu *ngIf="servicesEnabled" [navOpen]="menuOpen" (loggedOut)="onLoggedOut()" (menuToggled)="menuToggled($event)"></app-menu>
</header>
<div class="d-flex" style="overflow: clip">
<div *ngIf="!servicesEnabled" class="empty-sidenav"><!-- empty sidenav needed to push footer down the screen --></div>
<div class="empty-sidenav"><!-- empty sidenav needed to push footer down the screen --></div>
<div class="flex-grow-1 d-flex flex-column">
<app-testnet-alert *ngIf="network.val === 'testnet' || network.val === 'signet'"></app-testnet-alert>

View File

@@ -106,6 +106,8 @@ li.nav-item {
.dropdown {
.dropdown-toggle {
width: 62px;
height: 36px;
margin-top: 5px;
}
}
}
@@ -181,19 +183,30 @@ nav {
}
.subdomain_logo {
max-height: 45px;
height: 35px;
overflow: clip;
max-width: 140px;
margin: auto;
align-self: center;
.rounded {
border-radius: 5px;
}
}
.subdomain_container {
width: 140px;
margin-right: 15px;
max-width: 140px;
text-align: center;
align-self: center;
}
.vertical-line {
border-left: 1px solid #444;
height: 30px;
margin-left: 20px;
margin-right: 20px;
margin-top: 3px;
}
.logo-holder {
display: flex;
flex-direction: row;

View File

@@ -18,7 +18,7 @@
</span>
<a *ngIf="!userAuth" class="d-flex justify-content-center align-items-center nav-link m-0 menu-click" routerLink="/login" role="tab" (click)="onLinkClick('/login')">
<fa-icon class="menu-click" [icon]="['fas', 'user-circle']" [fixedWidth]="true" style="font-size: 25px;margin-right: 15px;"></fa-icon>
<span class="menu-click" style="font-size: 20px;" i18n="shared.sign-in">Sign in</span>
<span class="menu-click" style="font-size: 20px;" i18n="shared.sign-in">Sign In</span>
</a>
<ng-container *ngIf="userMenuGroups$ | async as menuGroups">

View File

@@ -121,6 +121,7 @@ export class PoolComponent implements OnInit {
);
this.oobFees$ = this.route.params.pipe(map((params) => params.slug)).pipe(
filter(() => this.stateService.env.PUBLIC_ACCELERATIONS === true && this.stateService.network === ''),
switchMap(slug => {
return combineLatest([
this.apiService.getAccelerationTotals$(this.slug, '1w'),
@@ -209,7 +210,7 @@ export class PoolComponent implements OnInit {
legend: {
data: [
{
name: $localize`:mining.hashrate:Hashrate`,
name: $localize`:@@79a9dc5b1caca3cbeb1733a19515edacc5fc7920:Hashrate`,
inactiveColor: 'rgb(110, 112, 121)',
textStyle: {
color: 'white',
@@ -263,7 +264,7 @@ export class PoolComponent implements OnInit {
series: hashrate.length <= 1 ? undefined : [
{
zlevel: 1,
name: $localize`:mining.hashrate:Hashrate`,
name: $localize`:@@79a9dc5b1caca3cbeb1733a19515edacc5fc7920:Hashrate`,
showSymbol: false,
symbol: 'none',
data: hashrate,

View File

@@ -33,7 +33,7 @@
<td class="td-width" i18n="transaction.status|Transaction Status">Status</td>
<td>
<span *ngIf="rbfInfo.tx.fullRbf" class="badge badge-info" i18n="transaction.full-rbf">Full RBF</span>
<span *ngIf="rbfInfo.tx.rbf; else rbfDisabled" class="badge badge-success" i18n="rbfInfo-features.tag.rbf|RBF">RBF</span>
<span *ngIf="rbfInfo.tx.rbf; else rbfDisabled" class="badge badge-success" i18n="tx-features.tag.rbf|RBF">RBF</span>
<ng-template #rbfDisabled><span class="badge badge-danger mr-1"><del i18n="tx-features.tag.rbf|RBF">RBF</del></span></ng-template>
<span *ngIf="rbfInfo.tx.mined" class="badge badge-success" i18n="transaction.rbf.mined">Mined</span>
</td>

View File

@@ -15,8 +15,6 @@
form {
margin-top: 5px;
@media (min-width: 564px) {
margin-top: 0px;
margin-left: 5px;
margin-right: -5px;
}
@media (min-width: 992px) {
@@ -39,7 +37,7 @@ form {
position: relative;
width: 100%;
@media (min-width: 768px) {
min-width: 400px;
min-width: 300px;
}
@media (min-width: 992px) {
min-width: 142px;

View File

@@ -71,10 +71,10 @@
</td>
</tr>
<tr *ngIf="network === '' && auditStatus">
<td class="td-width" i18n="transaction.audit">Audit</td>
<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="tx-features.tag.coinbase|Coinbase">Coinbase</span>
<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>
@@ -302,7 +302,7 @@
<app-transactions-list #txList [transactions]="[tx]" [cached]="isCached" [errorUnblinded]="errorUnblinded" [inputIndex]="inputIndex" [outputIndex]="outputIndex" [transactionPage]="true"></app-transactions-list>
<div class="title text-left">
<h2 i18n="transaction.details">Details</h2>
<h2 i18n="transaction.details|Transaction Details">Details</h2>
</div>
<div class="box">
<div class="row">
@@ -462,7 +462,7 @@
<br>
<div class="title">
<h2 i18n="transaction.details">Details</h2>
<h2 i18n="transaction.details|Transaction Details">Details</h2>
</div>
<div class="box">

View File

@@ -360,7 +360,8 @@
<ng-template #auditInProgress>
<ng-container *ngIf="(auditStatus$ | async) as auditStatus; else loadingSkeletonLiquid">
<div class="in-progress-message" *ngIf="auditStatus.lastBlockAudit && auditStatus.bitcoinHeaders; else loadingSkeletonLiquid">
<span i18n="liquid.audit-in-progress">Audit in progress: Bitcoin block height #{{ auditStatus.lastBlockAudit }} / #{{ auditStatus.bitcoinHeaders }}</span>
<div i18n="lightning.indexing-in-progress">Indexing in progress</div>
<div>#{{ auditStatus.lastBlockAudit }} / #{{ auditStatus.bitcoinHeaders }}</div>
</div>
</ng-container>
</ng-template>

View File

@@ -46,6 +46,7 @@ export interface Env {
SIGNET_BLOCK_AUDIT_START_HEIGHT: number;
HISTORICAL_PRICE: boolean;
ACCELERATOR: boolean;
PUBLIC_ACCELERATIONS: boolean;
ADDITIONAL_CURRENCIES: boolean;
GIT_COMMIT_HASH_MEMPOOL_SPACE?: string;
PACKAGE_JSON_VERSION_MEMPOOL_SPACE?: string;
@@ -77,6 +78,7 @@ const defaultEnv: Env = {
'SIGNET_BLOCK_AUDIT_START_HEIGHT': 0,
'HISTORICAL_PRICE': true,
'ACCELERATOR': false,
'PUBLIC_ACCELERATIONS': false,
'ADDITIONAL_CURRENCIES': false,
};
@@ -262,22 +264,10 @@ export class StateService {
// /^\/ starts with a forward slash...
// (?:[a-z]{2}(?:-[A-Z]{2})?\/)? optional locale prefix (non-capturing)
// (?:preview\/)? optional "preview" prefix (non-capturing)
// (testnet|liquidtestnet|liquid|signet)/ network string (captured as networkMatches[1])
// (testnet|signet)/ network string (captured as networkMatches[1])
// ($|\/) network string must end or end with a slash
const networkMatches = url.match(/^\/(?:[a-z]{2}(?:-[A-Z]{2})?\/)?(?:preview\/)?(testnet|liquidtestnet|liquid|signet)($|\/)/);
const networkMatches = url.match(/^\/(?:[a-z]{2}(?:-[A-Z]{2})?\/)?(?:preview\/)?(testnet|signet)($|\/)/);
switch (networkMatches && networkMatches[1]) {
case 'liquid':
if (this.network !== 'liquid') {
this.network = 'liquid';
this.networkChanged$.next('liquid');
}
return;
case 'liquidtestnet':
if (this.network !== 'liquidtestnet') {
this.network = 'liquidtestnet';
this.networkChanged$.next('liquidtestnet');
}
return;
case 'signet':
if (this.network !== 'signet') {
this.network = 'signet';
@@ -285,7 +275,7 @@ export class StateService {
}
return;
case 'testnet':
if (this.network !== 'testnet') {
if (this.network !== 'testnet' && this.network !== 'liquidtestnet') {
if (this.env.BASE_MODULE === 'liquid') {
this.network = 'liquidtestnet';
this.networkChanged$.next('liquidtestnet');

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

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

@@ -638,6 +638,14 @@
<context context-type="sourcefile">src/app/components/acceleration/pending-stats/pending-stats.component.html</context>
<context context-type="linenumber">13</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-reserves-audit/recent-pegs-stats/recent-pegs-stats.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-reserves-audit/recent-pegs-stats/recent-pegs-stats.component.html</context>
<context context-type="linenumber">18</context>
</context-group>
<note priority="1" from="description">BTC</note>
<note priority="1" from="meaning">shared.btc</note>
</trans-unit>
@@ -1644,12 +1652,28 @@
<context context-type="linenumber">146</context>
</context-group>
</trans-unit>
<trans-unit id="2041675390931385838" datatype="html">
<trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">
<source>Health</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block-health-graph/block-health-graph.component.ts</context>
<context context-type="linenumber">190</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">62</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.html</context>
<context context-type="linenumber">17</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.html</context>
<context context-type="linenumber">17</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
<context context-type="linenumber">185</context>
</context-group>
</trans-unit>
<trans-unit id="86c50fc2171298179283e3c9b6d79b57b821599b" datatype="html">
<source>not available</source>
@@ -1744,14 +1768,22 @@
<note priority="1" from="description">Transaction first seen</note>
<note priority="1" from="meaning">transaction.first-seen</note>
</trans-unit>
<trans-unit id="99ad0ac82b11b2602aaeb8f8a225972902d051df" datatype="html">
<trans-unit id="bfa87f9724434e4245b30f2bdd11d97477048cd1" datatype="html">
<source>Confirmed</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">32</context>
</context-group>
<note priority="1" from="description">Transaction confirmed after</note>
<note priority="1" from="meaning">transaction.confirmed-after</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">63</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
<context context-type="linenumber">9</context>
</context-group>
<note priority="1" from="description">Transaction confirmed state</note>
<note priority="1" from="meaning">transaction.confirmed</note>
</trans-unit>
<trans-unit id="dfc2fb58e2a04ed944a4bd80f0a2087775134068" datatype="html">
<source>Amount</source>
@@ -1907,13 +1939,18 @@
</context-group>
<note priority="1" from="description">transaction.audit.match</note>
</trans-unit>
<trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">
<trans-unit id="58fbcd58e305ab289b99fad67d223f3e83ddb755" datatype="html">
<source>Removed</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">71</context>
</context-group>
<note priority="1" from="description">transaction.audit.removed</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
<context context-type="linenumber">15</context>
</context-group>
<note priority="1" from="description">Transaction removed state</note>
<note priority="1" from="meaning">transaction.audit.removed</note>
</trans-unit>
<trans-unit id="f0136f1a1d77aa656e0ebd0f3c023118dd2a2776" datatype="html">
<source>Marginal fee rate</source>
@@ -1951,29 +1988,44 @@
</context-group>
<note priority="1" from="description">transaction.audit.recently-cpfped</note>
</trans-unit>
<trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">
<trans-unit id="73d42175ea0544a652c4f989afbec127367e8681" datatype="html">
<source>Added</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">76</context>
</context-group>
<note priority="1" from="description">transaction.audit.added</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">81</context>
</context-group>
<note priority="1" from="description">Added</note>
<note priority="1" from="meaning">tx-features.tag.added</note>
</trans-unit>
<trans-unit id="d8e711113f0997ecd154f3ce65de1b9a6431c3d3" datatype="html">
<trans-unit id="f046047ce9c57627e2b74101ef739a89cf0f568a" datatype="html">
<source>Prioritized</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">77</context>
</context-group>
<note priority="1" from="description">transaction.audit.prioritized</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">82</context>
</context-group>
<note priority="1" from="description">Prioritized</note>
<note priority="1" from="meaning">tx-features.tag.prioritized</note>
</trans-unit>
<trans-unit id="136c04d97155209abbe3f2535bcf5cf32f91b465" datatype="html">
<source>Conflicting</source>
<trans-unit id="52d9050d910141e93c3005296a01ec5c7e62934b" datatype="html">
<source>Conflict</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">79</context>
</context-group>
<note priority="1" from="description">transaction.audit.conflicting</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">83</context>
</context-group>
<note priority="1" from="description">Conflict</note>
<note priority="1" from="meaning">tx-features.tag.conflict</note>
</trans-unit>
<trans-unit id="b484583f0ce10f3341ab36750d05271d9d22c9a1" datatype="html">
<source>Accelerated</source>
@@ -2333,26 +2385,6 @@
</context-group>
<note priority="1" from="description">block.hash</note>
</trans-unit>
<trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">
<source>Health</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">62</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.html</context>
<context context-type="linenumber">17</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.html</context>
<context context-type="linenumber">17</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
<context context-type="linenumber">185</context>
</context-group>
<note priority="1" from="description">latest-blocks.health</note>
</trans-unit>
<trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">
<source>Unknown</source>
<context-group purpose="location">
@@ -2593,6 +2625,10 @@
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
<context context-type="linenumber">318</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">74</context>
</context-group>
<note priority="1" from="description">Toggle Audit</note>
<note priority="1" from="meaning">block.toggle-audit</note>
</trans-unit>
@@ -2606,6 +2642,14 @@
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">297</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">305</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">465</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/channel/channel.component.html</context>
<context context-type="linenumber">93</context>
@@ -2711,6 +2755,10 @@
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.ts</context>
<context context-type="linenumber">68</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-master-page/liquid-master-page.component.html</context>
<context context-type="linenumber">67</context>
@@ -2841,13 +2889,6 @@
</context-group>
<note priority="1" from="description">dashboard.txs</note>
</trans-unit>
<trans-unit id="meta.title.blocks-list" datatype="html">
<source>Blocks</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.ts</context>
<context context-type="linenumber">68</context>
</context-group>
</trans-unit>
<trans-unit id="meta.description.liquid.blocks" datatype="html">
<source>See the most recent Liquid<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> blocks along with basic stats such as block height, block size, and more.</source>
<context-group purpose="location">
@@ -3268,12 +3309,16 @@
</context-group>
<note priority="1" from="description">Transaction feerate tooltip (high priority)</note>
</trans-unit>
<trans-unit id="926c571b25cca7e2a294619f145960c0cd3848b6" datatype="html">
<source>Incoming transactions</source>
<trans-unit id="9dfdbeb922d811d7b7b3fecd48360a059e52aaba" datatype="html">
<source>Incoming Transactions</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/footer/footer.component.html</context>
<context context-type="linenumber">5</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">47</context>
</context-group>
<note priority="1" from="description">dashboard.incoming-transactions</note>
</trans-unit>
<trans-unit id="a5950b2ce4c3ea32de91034de8269781eb333d73" datatype="html">
@@ -3481,6 +3526,14 @@
<context context-type="sourcefile">src/app/components/pool/pool-preview.component.html</context>
<context context-type="linenumber">22</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool/pool.component.ts</context>
<context context-type="linenumber">212</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool/pool.component.ts</context>
<context context-type="linenumber">266</context>
</context-group>
<note priority="1" from="description">mining.hashrate</note>
</trans-unit>
<trans-unit id="3510fc6daa1d975f331e3a717bdf1a34efa06dff" datatype="html">
@@ -3605,13 +3658,21 @@
</context-group>
<note priority="1" from="description">master-page.graphs</note>
</trans-unit>
<trans-unit id="a7ecfd7757d04b019beaa2d7208c728387bfc7e8" datatype="html">
<source>Docs</source>
<trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">
<source>Documentation</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-master-page/liquid-master-page.component.html</context>
<context context-type="linenumber">81</context>
</context-group>
<note priority="1" from="description">master-page.docs</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/master-page/master-page.component.html</context>
<context context-type="linenumber">74</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/docs/docs/docs.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<note priority="1" from="description">documentation.title</note>
</trans-unit>
<trans-unit id="b4f212e7d0333eb600f835e4664846f9a1a58424" datatype="html">
<source>Non-Dust Expired</source>
@@ -3745,13 +3806,13 @@
</context-group>
<note priority="1" from="description">liquid.expired-since</note>
</trans-unit>
<trans-unit id="24874d20368f931c1b644bba3eef6f2cb5f753fb" datatype="html">
<source>Is Dust</source>
<trans-unit id="1c6520aeea2eb946269acab0a2863162b8311e7d" datatype="html">
<source>Dust</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-reserves-audit/federation-utxos-list/federation-utxos-list.component.html</context>
<context context-type="linenumber">15</context>
</context-group>
<note priority="1" from="description">liquid.is-dust</note>
<note priority="1" from="description">liquid.dust</note>
</trans-unit>
<trans-unit id="a5d0bd2f3fedabd093937eb13a9edb9bcd00b919" datatype="html">
<source>Change output</source>
@@ -3769,22 +3830,6 @@
</context-group>
<note priority="1" from="description">shared.blocks</note>
</trans-unit>
<trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">
<source>Yes</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-reserves-audit/federation-utxos-list/federation-utxos-list.component.html</context>
<context context-type="linenumber">66</context>
</context-group>
<note priority="1" from="description">shared.yes</note>
</trans-unit>
<trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">
<source>No</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-reserves-audit/federation-utxos-list/federation-utxos-list.component.html</context>
<context context-type="linenumber">67</context>
</context-group>
<note priority="1" from="description">shared.no</note>
</trans-unit>
<trans-unit id="b4a7d4e1363be9ed70ec20dbf1a97bff3e94e5b7" datatype="html">
<source>Timelock-Expired UTXOs</source>
<context-group purpose="location">
@@ -3869,18 +3914,6 @@
</context-group>
<note priority="1" from="description">liquid.peg-ins-volume-day</note>
</trans-unit>
<trans-unit id="ee326b7b6e8d816ec80f0c81aedad2a132467309" datatype="html">
<source>BTC</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-reserves-audit/recent-pegs-stats/recent-pegs-stats.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-reserves-audit/recent-pegs-stats/recent-pegs-stats.component.html</context>
<context context-type="linenumber">18</context>
</context-group>
<note priority="1" from="description">shared.addresses</note>
</trans-unit>
<trans-unit id="44cfc2e57619bf9beab1ef5b4bedfa52246f5e27" datatype="html">
<source>Peg-Ins</source>
<context-group purpose="location">
@@ -3945,6 +3978,13 @@
</context-group>
<note priority="1" from="description">shared.usage</note>
</trans-unit>
<trans-unit id="9076228015944198327" datatype="html">
<source>Assets vs Liabilities</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/liquid-reserves-audit/reserves-ratio/reserves-ratio.component.ts</context>
<context context-type="linenumber">162</context>
</context-group>
</trans-unit>
<trans-unit id="eb7a000cd340b44291d790f7b56f7b926edc275b" datatype="html">
<source>L-BTC in circulation</source>
<context-group purpose="location">
@@ -4005,18 +4045,6 @@
</context-group>
<note priority="1" from="description">master-page.lightning</note>
</trans-unit>
<trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">
<source>Documentation</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/master-page/master-page.component.html</context>
<context context-type="linenumber">74</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/docs/docs/docs.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<note priority="1" from="description">documentation.title</note>
</trans-unit>
<trans-unit id="meta.description.mempool-block" datatype="html">
<source>See stats for <x id="PH" equiv-text="this.stateService.network===&apos;liquid&apos;||this.stateService.network===&apos;liquidtestnet&apos;?&apos;Liquid&apos;:&apos;Bitcoin&apos;"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> transactions in the mempool: fee range, aggregate size, and more. Mempool blocks are updated in real-time as the network receives new transactions.</source>
<context-group purpose="location">
@@ -4063,12 +4091,20 @@
<context context-type="linenumber">328</context>
</context-group>
</trans-unit>
<trans-unit id="287d3301a32a65a1b31116bda5d3a6463158c42a" datatype="html">
<source>Sign in</source>
<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">
@@ -4524,18 +4560,6 @@
<context context-type="linenumber">143</context>
</context-group>
</trans-unit>
<trans-unit id="3781457392965972953" datatype="html">
<source>Hashrate</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool/pool.component.ts</context>
<context context-type="linenumber">212</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/pool/pool.component.ts</context>
<context context-type="linenumber">266</context>
</context-group>
<note priority="1" from="description">mining.hashrate</note>
</trans-unit>
<trans-unit id="8831611540421575858" datatype="html">
<source>Pool Dominance</source>
<context-group purpose="location">
@@ -4634,17 +4658,12 @@
<context context-type="linenumber">61</context>
</context-group>
</trans-unit>
<trans-unit id="eb3b032a755fc367f7f6e957d0c7dc9d6db49464" datatype="html">
<trans-unit id="f0e7d6d900658ee5ce66d8fef3637caf13891c53" datatype="html">
<source>RBF</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
<context context-type="linenumber">36</context>
</context-group>
<note priority="1" from="description">RBF</note>
<note priority="1" from="meaning">rbfInfo-features.tag.rbf</note>
</trans-unit>
<trans-unit id="f0e7d6d900658ee5ce66d8fef3637caf13891c53" datatype="html">
<source>RBF</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
<context context-type="linenumber">37</context>
@@ -5204,6 +5223,10 @@
<context context-type="sourcefile">src/app/components/transaction/transaction-preview.component.html</context>
<context context-type="linenumber">43</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">77</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
<context context-type="linenumber">54</context>
@@ -5245,19 +5268,6 @@
<note priority="1" from="description">RBF replacement</note>
<note priority="1" from="meaning">transaction.rbf.replacement</note>
</trans-unit>
<trans-unit id="bfa87f9724434e4245b30f2bdd11d97477048cd1" datatype="html">
<source>Confirmed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">63</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
<context context-type="linenumber">9</context>
</context-group>
<note priority="1" from="description">Transaction Confirmed state</note>
<note priority="1" from="meaning">transaction.confirmed</note>
</trans-unit>
<trans-unit id="885666551418fd59011ceb09d5c481095940193b" datatype="html">
<source>Features</source>
<context-group purpose="location">
@@ -5275,23 +5285,6 @@
<note priority="1" from="description">Transaction features</note>
<note priority="1" from="meaning">transaction.features</note>
</trans-unit>
<trans-unit id="0b05fe4e219884c8938584284f1255be67823d1a" datatype="html">
<source>Audit</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">74</context>
</context-group>
<note priority="1" from="description">transaction.audit</note>
</trans-unit>
<trans-unit id="99551db56b5be0e273a794836599b422d5700c20" datatype="html">
<source>Coinbase</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">77</context>
</context-group>
<note priority="1" from="description">Coinbase</note>
<note priority="1" from="meaning">tx-features.tag.coinbase</note>
</trans-unit>
<trans-unit id="bbd31e1edb0c089cca11d3d718b6588f3496e9e1" datatype="html">
<source>This transaction was projected to be included in the block</source>
<context-group purpose="location">
@@ -5351,15 +5344,6 @@
</context-group>
<note priority="1" from="description">Added transaction tooltip</note>
</trans-unit>
<trans-unit id="73d42175ea0544a652c4f989afbec127367e8681" datatype="html">
<source>Added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">81</context>
</context-group>
<note priority="1" from="description">Added</note>
<note priority="1" from="meaning">tx-features.tag.added</note>
</trans-unit>
<trans-unit id="0badd8c91194cb72dd79e12955d4ed4b43a7cf41" datatype="html">
<source>This transaction may have been prioritized out-of-band</source>
<context-group purpose="location">
@@ -5368,15 +5352,6 @@
</context-group>
<note priority="1" from="description">Prioritized transaction tooltip</note>
</trans-unit>
<trans-unit id="f046047ce9c57627e2b74101ef739a89cf0f568a" datatype="html">
<source>Prioritized</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">82</context>
</context-group>
<note priority="1" from="description">Prioritized</note>
<note priority="1" from="meaning">tx-features.tag.prioritized</note>
</trans-unit>
<trans-unit id="7ef1a8a56ad5696e527a8da06a13661f883ad6b2" datatype="html">
<source>This transaction conflicted with another version in our mempool</source>
<context-group purpose="location">
@@ -5385,15 +5360,6 @@
</context-group>
<note priority="1" from="description">Conflict in mempool tooltip</note>
</trans-unit>
<trans-unit id="52d9050d910141e93c3005296a01ec5c7e62934b" datatype="html">
<source>Conflict</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">83</context>
</context-group>
<note priority="1" from="description">Conflict</note>
<note priority="1" from="meaning">tx-features.tag.conflict</note>
</trans-unit>
<trans-unit id="ec972116b4da9e2c5bc0e6e6586061d60cd13e56" datatype="html">
<source>Hide accelerator</source>
<context-group purpose="location">
@@ -5534,18 +5500,6 @@
</context-group>
<note priority="1" from="description">show-diagram</note>
</trans-unit>
<trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">305</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
<context context-type="linenumber">465</context>
</context-group>
<note priority="1" from="description">transaction.details</note>
</trans-unit>
<trans-unit id="a8a4dd861f790141e19f773153cf42b5d0b0e6b6" datatype="html">
<source>Adjusted vsize</source>
<context-group purpose="location">
@@ -5952,14 +5906,6 @@
</context-group>
<note priority="1" from="description">dashboard.mempool-goggles</note>
</trans-unit>
<trans-unit id="9dfdbeb922d811d7b7b3fecd48360a059e52aaba" datatype="html">
<source>Incoming Transactions</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
<context context-type="linenumber">47</context>
</context-group>
<note priority="1" from="description">dashboard.incoming-transactions</note>
</trans-unit>
<trans-unit id="4fe744df6d36b5e9b0afab728b77fc635b99f040" datatype="html">
<source>Recent Replacements</source>
<context-group purpose="location">
@@ -6046,13 +5992,21 @@
<note priority="1" from="description">Purgin below fee</note>
<note priority="1" from="meaning">dashboard.purging</note>
</trans-unit>
<trans-unit id="1edcd31b8dd9822cd73885d593c32048c178ad24" datatype="html">
<source>Audit in progress: Bitcoin block height #<x id="INTERPOLATION" equiv-text="{{ auditStatus.lastBlockAudit }}"/> / #<x id="INTERPOLATION_1" equiv-text="{{ auditStatus.bitcoinHeaders }}"/></source>
<trans-unit id="af1176facd00a0580509fb2900ab0cf7f9b39ae7" datatype="html">
<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,365</context>
<context context-type="linenumber">363</context>
</context-group>
<note priority="1" from="description">liquid.audit-in-progress</note>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/statistics-chart/lightning-statistics-chart.component.html</context>
<context context-type="linenumber">52</context>
</context-group>
<note priority="1" from="description">lightning.indexing-in-progress</note>
</trans-unit>
<trans-unit id="999bb1a0150c2815a6b4dd64a1850e763603e525" datatype="html">
<source><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space mer"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="&lt;/b&gt;"/> It cannot help you with retrieving funds, wallet issues, etc.<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="&lt;/p&gt;"/><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/>For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="&lt;/p&gt;"/></source>
@@ -7601,18 +7555,6 @@
</context-group>
<note priority="1" from="description">lightning.top-100-isp-ln</note>
</trans-unit>
<trans-unit id="af1176facd00a0580509fb2900ab0cf7f9b39ae7" datatype="html">
<source>Indexing in progress</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/lightning/statistics-chart/lightning-statistics-chart.component.html</context>
<context context-type="linenumber">52</context>
</context-group>
<note priority="1" from="description">lightning.indexing-in-progress</note>
</trans-unit>
<trans-unit id="meta.description.lightning.nodes-per-isp" datatype="html">
<source>Browse the top 100 ISPs hosting Lightning nodes along with stats like total number of nodes per ISP, aggregate BTC capacity per ISP, and more</source>
<context-group purpose="location">
@@ -7797,15 +7739,6 @@
<note priority="1" from="description">Transaction replaced state</note>
<note priority="1" from="meaning">transaction.replaced</note>
</trans-unit>
<trans-unit id="58fbcd58e305ab289b99fad67d223f3e83ddb755" datatype="html">
<source>Removed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
<context context-type="linenumber">15</context>
</context-group>
<note priority="1" from="description">Transaction removed state</note>
<note priority="1" from="meaning">transaction.audit.removed</note>
</trans-unit>
<trans-unit id="ef772ce5cf98a47b29175e3d46b8a9816c7990a2" datatype="html">
<source>Unconfirmed</source>
<context-group purpose="location">
@@ -7840,18 +7773,6 @@
</context-group>
<note priority="1" from="description">shared.my-account</note>
</trans-unit>
<trans-unit id="ba4f24bf9bf3dc4db3d6bc1b8b63339295f0b806" datatype="html">
<source>Sign In</source>
<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="1773b1dad3e4b72bca77621985366b9e6a92ae28" datatype="html">
<source>Explore</source>
<context-group purpose="location">

File diff suppressed because it is too large Load Diff

View File

@@ -6,6 +6,9 @@ check_mempoolspace_frontend_git_hash() {
check_mempoolfoss_frontend_git_hash() {
echo -n $(curl -s "https://node${1}.${2}.mempool.space/resources/config.js"|grep GIT_COMMIT_HASH|cut -d "'" -f2|cut -c1-8)
}
check_mempoolfoss_backend_git_hash() {
echo -n $(curl -s "https://node${1}.${2}.mempool.space/api/v1/backend-info"|jq -r .gitCommit 2>/dev/null|cut -c1-8)
}
check_mempoolspace_frontend_md5_hash() {
echo -n $(curl -s --connect-to "::node${1}.${2}.mempool.space:443" https://mempool.space|md5|cut -c1-8)
}
@@ -28,6 +31,8 @@ for site in fmt va1 fra tk7;do
echo -n " "
check_mempoolfoss_frontend_git_hash $node $site
echo -n " "
check_mempoolfoss_backend_git_hash $node $site
echo -n " "
check_mempoolspace_frontend_md5_hash $node $site
echo -n " "
check_mempoolfoss_frontend_md5_hash $node $site

View File

@@ -12,5 +12,6 @@
"ITEMS_PER_PAGE": 25,
"LIGHTNING": true,
"ACCELERATOR": true,
"PUBLIC_ACCELERATIONS": true,
"AUDIT": true
}

View File

@@ -11,7 +11,7 @@
"build-release": "npm run build -- --release --strip",
"check-cargo-version": "VER=$(cat rust-toolchain) ; if ! cargo version | grep \"cargo $VER\" >/dev/null ; then echo -e \"\\033[1;35m[[[[WARNING]]]]: cargo version mismatch with ./rust-toolchain version ($VER)!!!\\033[0m\" >&2; fi",
"clean": "rm -rf ./target/ ./node_modules/ *.node package-lock.json",
"to-backend": "FD=../../backend/rust-gbt/ ; rm -rf $FD && mkdir $FD && cp index.js index.d.ts package.json *.node $FD",
"to-backend": "FD=${FD:-../../backend/rust-gbt/} ; rm -rf $FD && mkdir $FD && cp index.js index.d.ts package.json *.node $FD",
"prepublishOnly": "napi prepublish -t npm",
"test": "cargo test"
},