Merge branch 'master' into orangesurf/trademark0103
This commit is contained in:
commit
585732e438
221
.github/workflows/ci.yml
vendored
221
.github/workflows/ci.yml
vendored
@ -63,7 +63,96 @@ jobs:
|
|||||||
run: npm run build
|
run: npm run build
|
||||||
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/backend
|
||||||
|
|
||||||
|
|
||||||
|
cache:
|
||||||
|
name: "Cache assets for builds"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: assets
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node }}
|
||||||
|
registry-url: "https://registry.npmjs.org"
|
||||||
|
|
||||||
|
- name: Install (Prod dependencies only)
|
||||||
|
run: npm ci --omit=dev --omit=optional
|
||||||
|
working-directory: assets/frontend
|
||||||
|
|
||||||
|
- name: Restore cached mining pool assets
|
||||||
|
continue-on-error: true
|
||||||
|
id: cache-mining-pool-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
mining-pool-assets.zip
|
||||||
|
key: mining-pool-assets-cache
|
||||||
|
|
||||||
|
- name: Restore promo video assets
|
||||||
|
continue-on-error: true
|
||||||
|
id: cache-promo-video-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
promo-video-assets.zip
|
||||||
|
key: promo-video-assets-cache
|
||||||
|
|
||||||
|
- name: Unzip assets before building (src/resources)
|
||||||
|
continue-on-error: true
|
||||||
|
run: unzip -o mining-pool-assets.zip -d assets/frontend/src/resources/mining-pools
|
||||||
|
|
||||||
|
- name: Unzip assets before building (src/resources)
|
||||||
|
continue-on-error: true
|
||||||
|
run: unzip -o promo-video-assets.zip -d assets/frontend/src/resources/promo-video
|
||||||
|
|
||||||
|
# - name: Unzip assets before building (dist)
|
||||||
|
# continue-on-error: true
|
||||||
|
# run: unzip assets.zip -d assets/frontend/dist/mempool/browser/resources
|
||||||
|
|
||||||
|
- name: Sync-assets
|
||||||
|
run: npm run sync-assets-dev
|
||||||
|
working-directory: assets/frontend
|
||||||
|
|
||||||
|
- name: Zip mining-pool assets
|
||||||
|
run: zip -jrq mining-pool-assets.zip assets/frontend/src/resources/mining-pools/*
|
||||||
|
|
||||||
|
- name: Zip promo-video assets
|
||||||
|
run: zip -jrq promo-video-assets.zip assets/frontend/src/resources/promo-video/*
|
||||||
|
|
||||||
|
- name: Upload mining pool assets as artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: mining-pool-assets
|
||||||
|
path: mining-pool-assets.zip
|
||||||
|
|
||||||
|
- name: Upload promo video assets as artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: promo-video-assets
|
||||||
|
path: promo-video-assets.zip
|
||||||
|
|
||||||
|
- name: Save mining pool assets cache
|
||||||
|
id: cache-mining-pool-save
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
mining-pool-assets.zip
|
||||||
|
key: mining-pool-assets-cache
|
||||||
|
|
||||||
|
- name: Save promo video assets cache
|
||||||
|
id: cache-promo-video-save
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
promo-video-assets.zip
|
||||||
|
key: promo-video-assets-cache
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
|
needs: cache
|
||||||
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
@ -103,9 +192,141 @@ jobs:
|
|||||||
# - name: Test
|
# - name: Test
|
||||||
# run: npm run test
|
# run: npm run test
|
||||||
|
|
||||||
|
- name: Restore cached mining pool assets
|
||||||
|
continue-on-error: true
|
||||||
|
id: cache-mining-pool-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
mining-pool-assets.zip
|
||||||
|
key: mining-pool-assets-cache
|
||||||
|
|
||||||
|
- name: Restore promo video assets
|
||||||
|
continue-on-error: true
|
||||||
|
id: cache-promo-video-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
promo-video-assets.zip
|
||||||
|
key: promo-video-assets-cache
|
||||||
|
|
||||||
|
- name: Download artifact
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: mining-pool-assets
|
||||||
|
|
||||||
|
- name: Unzip assets before building (src/resources)
|
||||||
|
run: unzip -o mining-pool-assets.zip -d ${{ matrix.node }}/${{ matrix.flavor }}/frontend/src/resources/mining-pools
|
||||||
|
|
||||||
|
- name: Download artifact
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: promo-video-assets
|
||||||
|
|
||||||
|
- name: Unzip assets before building (src/resources)
|
||||||
|
run: unzip -o promo-video-assets.zip -d ${{ matrix.node }}/${{ matrix.flavor }}/frontend/src/resources/promo-video
|
||||||
|
|
||||||
|
# - name: Unzip assets before building (dist)
|
||||||
|
# run: unzip assets.zip -d ${{ matrix.node }}/${{ matrix.flavor }}/frontend/dist/mempool/browser/resources
|
||||||
|
|
||||||
|
- name: Display resulting source tree
|
||||||
|
run: ls -R
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: npm run build
|
run: npm run build
|
||||||
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
working-directory: ${{ matrix.node }}/${{ matrix.flavor }}/frontend
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
e2e:
|
||||||
|
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
||||||
|
runs-on: "ubuntu-latest"
|
||||||
|
needs: frontend
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
# module: ["mempool", "liquid", "bisq"] Disabling bisq support for now
|
||||||
|
module: ["mempool", "liquid"]
|
||||||
|
include:
|
||||||
|
- module: "mempool"
|
||||||
|
spec: |
|
||||||
|
cypress/e2e/mainnet/*.spec.ts
|
||||||
|
cypress/e2e/signet/*.spec.ts
|
||||||
|
cypress/e2e/testnet/*.spec.ts
|
||||||
|
- module: "liquid"
|
||||||
|
spec: |
|
||||||
|
cypress/e2e/liquid/liquid.spec.ts
|
||||||
|
cypress/e2e/liquidtestnet/liquidtestnet.spec.ts
|
||||||
|
# - module: "bisq"
|
||||||
|
# spec: |
|
||||||
|
# cypress/e2e/bisq/bisq.spec.ts
|
||||||
|
|
||||||
|
name: E2E tests for ${{ matrix.module }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: ${{ matrix.module }}
|
||||||
|
|
||||||
|
- name: Setup node
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
cache: "npm"
|
||||||
|
cache-dependency-path: ${{ matrix.module }}/frontend/package-lock.json
|
||||||
|
|
||||||
|
- name: Restore cached mining pool assets
|
||||||
|
continue-on-error: true
|
||||||
|
id: cache-mining-pool-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
mining-pool-assets.zip
|
||||||
|
key: mining-pool-assets-cache
|
||||||
|
|
||||||
|
- name: Restore cached promo video assets
|
||||||
|
continue-on-error: true
|
||||||
|
id: cache-promo-video-restore
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
promo-video-assets.zip
|
||||||
|
key: promo-video-assets-cache
|
||||||
|
|
||||||
|
- name: Download artifact
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: mining-pool-assets
|
||||||
|
|
||||||
|
- name: Unzip assets before building (src/resources)
|
||||||
|
run: unzip -o mining-pool-assets.zip -d ${{ matrix.module }}/frontend/src/resources/mining-pools
|
||||||
|
|
||||||
|
- name: Download artifact
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: promo-video-assets
|
||||||
|
|
||||||
|
- name: Unzip assets before building (src/resources)
|
||||||
|
run: unzip -o promo-video-assets.zip -d ${{ matrix.module }}/frontend/src/resources/promo-video
|
||||||
|
|
||||||
|
- name: Chrome browser tests (${{ matrix.module }})
|
||||||
|
uses: cypress-io/github-action@v5
|
||||||
|
with:
|
||||||
|
tag: ${{ github.event_name }}
|
||||||
|
working-directory: ${{ matrix.module }}/frontend
|
||||||
|
build: npm run config:defaults:${{ matrix.module }}
|
||||||
|
start: npm run start:local-staging
|
||||||
|
wait-on: "http://localhost:4200"
|
||||||
|
wait-on-timeout: 120
|
||||||
|
record: true
|
||||||
|
parallel: true
|
||||||
|
spec: ${{ matrix.spec }}
|
||||||
|
group: Tests on Chrome (${{ matrix.module }})
|
||||||
|
browser: "chrome"
|
||||||
|
ci-build-id: "${{ github.sha }}-${{ github.workflow }}-${{ github.event_name }}"
|
||||||
|
env:
|
||||||
|
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
|
||||||
|
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
|
||||||
|
|
64
.github/workflows/cypress.yml
vendored
64
.github/workflows/cypress.yml
vendored
@ -1,64 +0,0 @@
|
|||||||
name: Cypress Tests
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [master]
|
|
||||||
pull_request:
|
|
||||||
types: [opened, synchronize]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
cypress:
|
|
||||||
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
module: ["mempool", "liquid", "bisq"]
|
|
||||||
include:
|
|
||||||
- module: "mempool"
|
|
||||||
spec: |
|
|
||||||
cypress/e2e/mainnet/*.spec.ts
|
|
||||||
cypress/e2e/signet/*.spec.ts
|
|
||||||
cypress/e2e/testnet/*.spec.ts
|
|
||||||
- module: "liquid"
|
|
||||||
spec: |
|
|
||||||
cypress/e2e/liquid/liquid.spec.ts
|
|
||||||
cypress/e2e/liquidtestnet/liquidtestnet.spec.ts
|
|
||||||
- module: "bisq"
|
|
||||||
spec: |
|
|
||||||
cypress/e2e/bisq/bisq.spec.ts
|
|
||||||
|
|
||||||
name: E2E tests for ${{ matrix.module }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
path: ${{ matrix.module }}
|
|
||||||
|
|
||||||
- name: Setup node
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
cache: "npm"
|
|
||||||
cache-dependency-path: ${{ matrix.module }}/frontend/package-lock.json
|
|
||||||
|
|
||||||
- name: Chrome browser tests (${{ matrix.module }})
|
|
||||||
uses: cypress-io/github-action@v5
|
|
||||||
with:
|
|
||||||
tag: ${{ github.event_name }}
|
|
||||||
working-directory: ${{ matrix.module }}/frontend
|
|
||||||
build: npm run config:defaults:${{ matrix.module }}
|
|
||||||
start: npm run start:local-staging
|
|
||||||
wait-on: "http://localhost:4200"
|
|
||||||
wait-on-timeout: 120
|
|
||||||
record: true
|
|
||||||
parallel: true
|
|
||||||
spec: ${{ matrix.spec }}
|
|
||||||
group: Tests on Chrome (${{ matrix.module }})
|
|
||||||
browser: "chrome"
|
|
||||||
ci-build-id: "${{ github.sha }}-${{ github.workflow }}-${{ github.event_name }}"
|
|
||||||
env:
|
|
||||||
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
|
|
||||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
|
|
3
contributors/isghe.txt
Normal file
3
contributors/isghe.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
I hereby accept the terms of the Contributor License Agreement in the CONTRIBUTING.md file of the mempool/mempool git repository as of January 18, 2024.
|
||||||
|
|
||||||
|
Signed: isghe
|
@ -405,7 +405,7 @@
|
|||||||
|
|
||||||
<div class="copyright">
|
<div class="copyright">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
Copyright © 2019-2023<br>
|
Copyright © 2019-2024<br>
|
||||||
Mempool Space K.K.<br>
|
Mempool Space K.K.<br>
|
||||||
and other shadowy super-coders
|
and other shadowy super-coders
|
||||||
</div>
|
</div>
|
||||||
|
@ -66,7 +66,7 @@ export class AccelerationFeesGraphComponent implements OnInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.seoService.setTitle($localize`:@@6c453b11fd7bd159ae30bc381f367bc736d86909:Acceleration Fees`);
|
this.seoService.setTitle($localize`:@@bcf34abc2d9ed8f45a2f65dd464c46694e9a181e:Acceleration Fees`);
|
||||||
this.isLoading = true;
|
this.isLoading = true;
|
||||||
if (this.widget) {
|
if (this.widget) {
|
||||||
this.miningWindowPreference = '1m';
|
this.miningWindowPreference = '1m';
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<h5 class="card-title" i18n="accelerator.success-rate">Success rate</h5>
|
<h5 class="card-title" i18n="accelerator.success-rate">Success Rate</h5>
|
||||||
<div class="card-text">
|
<div class="card-text">
|
||||||
<div>{{ stats.successRate.toFixed(2) }} %</div>
|
<div>{{ stats.successRate.toFixed(2) }} %</div>
|
||||||
<div class="symbol" i18n="accelerator.mined-next-block">mined</div>
|
<div class="symbol" i18n="accelerator.mined-next-block">mined</div>
|
||||||
@ -43,7 +43,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<h5 class="card-title" i18n="accelerator.success-rate">Success rate</h5>
|
<h5 class="card-title" i18n="accelerator.success-rate">Success Rate</h5>
|
||||||
<div class="card-text">
|
<div class="card-text">
|
||||||
<div class="skeleton-loader"></div>
|
<div class="skeleton-loader"></div>
|
||||||
<div class="skeleton-loader"></div>
|
<div class="skeleton-loader"></div>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<!-- pending stats -->
|
<!-- pending stats -->
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="main-title">
|
<div class="main-title">
|
||||||
<span [attr.data-cy]="'pending-accelerations'" i18n="accelerator.pending-accelerations">Active accelerations</span>
|
<span [attr.data-cy]="'pending-accelerations'" i18n="accelerator.pending-accelerations">Active Accelerations</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-wrapper">
|
<div class="card-wrapper">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@ -69,7 +69,7 @@
|
|||||||
<div class="card list-card">
|
<div class="card list-card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="title-link">
|
<div class="title-link">
|
||||||
<h5 class="card-title d-inline" i18n="dashboard.recent-accelerations">Active Accelerations</h5>
|
<h5 class="card-title d-inline" i18n="accelerator.pending-accelerations">Active Accelerations</h5>
|
||||||
</div>
|
</div>
|
||||||
<app-accelerations-list [attr.data-cy]="'pending-accelerations'" [widget]=true [pending]="true" [accelerations$]="pendingAccelerations$"></app-accelerations-list>
|
<app-accelerations-list [attr.data-cy]="'pending-accelerations'" [widget]=true [pending]="true" [accelerations$]="pendingAccelerations$"></app-accelerations-list>
|
||||||
</div>
|
</div>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<h5 class="card-title" i18n="accelerator.total-vsize">Total vsize</h5>
|
<h5 class="card-title" i18n="accelerator.total-vsize">Total Vsize</h5>
|
||||||
<div class="card-text">
|
<div class="card-text">
|
||||||
<div [innerHTML]="'‎' + (stats.totalVsize * 4 | vbytes: 2)"></div>
|
<div [innerHTML]="'‎' + (stats.totalVsize * 4 | vbytes: 2)"></div>
|
||||||
<div class="symbol">{{ (stats.totalVsize / 1_000_000 * 100).toFixed(2) }}% <span i18n="accelerator.percent-of-next-block"> of next block</span></div>
|
<div class="symbol">{{ (stats.totalVsize / 1_000_000 * 100).toFixed(2) }}% <span i18n="accelerator.percent-of-next-block"> of next block</span></div>
|
||||||
@ -43,7 +43,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<h5 class="card-title" i18n="accelerator.total-vsize">Total vsize</h5>
|
<h5 class="card-title" i18n="accelerator.total-vsize">Total Vsize</h5>
|
||||||
<div class="card-text">
|
<div class="card-text">
|
||||||
<div class="skeleton-loader"></div>
|
<div class="skeleton-loader"></div>
|
||||||
<div class="skeleton-loader"></div>
|
<div class="skeleton-loader"></div>
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
<a class="nav-link" [routerLink]="['/' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'tachometer-alt']" [fixedWidth]="true" i18n-title="master-page.dashboard" title="Dashboard"></fa-icon></a>
|
<a class="nav-link" [routerLink]="['/' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'tachometer-alt']" [fixedWidth]="true" i18n-title="master-page.dashboard" title="Dashboard"></fa-icon></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-home" *ngIf="stateService.env.ACCELERATOR">
|
<li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-home" *ngIf="stateService.env.ACCELERATOR">
|
||||||
<a class="nav-link" [routerLink]="['/acceleration' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'rocket']" [fixedWidth]="true" i18n-title="master-page.acceleration-dashboard" title="Acceleration Dashboard"></fa-icon></a>
|
<a class="nav-link" [routerLink]="['/acceleration' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'rocket']" [fixedWidth]="true" i18n-title="master-page.accelerator-dashboard" title="Accelerator Dashboard"></fa-icon></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-pools" *ngIf="stateService.env.MINING_DASHBOARD">
|
<li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-pools" *ngIf="stateService.env.MINING_DASHBOARD">
|
||||||
<a class="nav-link" [routerLink]="['/mining' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'hammer']" [fixedWidth]="true" i18n-title="mining.mining-dashboard" title="Mining Dashboard"></fa-icon></a>
|
<a class="nav-link" [routerLink]="['/mining' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'hammer']" [fixedWidth]="true" i18n-title="mining.mining-dashboard" title="Mining Dashboard"></fa-icon></a>
|
||||||
|
@ -1,15 +1,11 @@
|
|||||||
:host ::ng-deep {
|
:host ::ng-deep {
|
||||||
.dropdown-item {
|
.dropdown-item {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
width: calc(100% - 34px);
|
|
||||||
}
|
}
|
||||||
.dropdown-menu {
|
.dropdown-menu {
|
||||||
width: calc(100% - 34px);
|
width: calc(100% - 34px);
|
||||||
}
|
}
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
.dropdown-item {
|
|
||||||
width: 410px;
|
|
||||||
}
|
|
||||||
.dropdown-menu {
|
.dropdown-menu {
|
||||||
width: 410px;
|
width: 410px;
|
||||||
}
|
}
|
||||||
|
@ -170,6 +170,7 @@ export class SearchFormComponent implements OnInit {
|
|||||||
addresses: [],
|
addresses: [],
|
||||||
nodes: [],
|
nodes: [],
|
||||||
channels: [],
|
channels: [],
|
||||||
|
liquidAsset: [],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -187,6 +188,7 @@ export class SearchFormComponent implements OnInit {
|
|||||||
const matchesBlockHash = this.regexBlockhash.test(searchText);
|
const matchesBlockHash = this.regexBlockhash.test(searchText);
|
||||||
let matchesAddress = !matchesTxId && this.regexAddress.test(searchText);
|
let matchesAddress = !matchesTxId && this.regexAddress.test(searchText);
|
||||||
const otherNetworks = findOtherNetworks(searchText, this.network as any || 'mainnet', this.env);
|
const otherNetworks = findOtherNetworks(searchText, this.network as any || 'mainnet', this.env);
|
||||||
|
const liquidAsset = this.assets ? (this.assets[searchText] || []) : [];
|
||||||
|
|
||||||
// Add B prefix to addresses in Bisq network
|
// Add B prefix to addresses in Bisq network
|
||||||
if (!matchesAddress && this.network === 'bisq' && getRegex('address', 'mainnet').test(searchText)) {
|
if (!matchesAddress && this.network === 'bisq' && getRegex('address', 'mainnet').test(searchText)) {
|
||||||
@ -211,6 +213,7 @@ export class SearchFormComponent implements OnInit {
|
|||||||
otherNetworks: otherNetworks,
|
otherNetworks: otherNetworks,
|
||||||
nodes: lightningResults.nodes,
|
nodes: lightningResults.nodes,
|
||||||
channels: lightningResults.channels,
|
channels: lightningResults.channels,
|
||||||
|
liquidAsset: liquidAsset,
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@ -259,16 +262,16 @@ export class SearchFormComponent implements OnInit {
|
|||||||
} else if (this.regexTransaction.test(searchText)) {
|
} else if (this.regexTransaction.test(searchText)) {
|
||||||
const matches = this.regexTransaction.exec(searchText);
|
const matches = this.regexTransaction.exec(searchText);
|
||||||
if (this.network === 'liquid' || this.network === 'liquidtestnet') {
|
if (this.network === 'liquid' || this.network === 'liquidtestnet') {
|
||||||
if (this.assets[matches[1]]) {
|
if (this.assets[matches[0]]) {
|
||||||
this.navigate('/assets/asset/', matches[1]);
|
this.navigate('/assets/asset/', matches[0]);
|
||||||
}
|
}
|
||||||
this.electrsApiService.getAsset$(matches[1])
|
this.electrsApiService.getAsset$(matches[0])
|
||||||
.subscribe(
|
.subscribe(
|
||||||
() => { this.navigate('/assets/asset/', matches[1]); },
|
() => { this.navigate('/assets/asset/', matches[0]); },
|
||||||
() => {
|
() => {
|
||||||
this.electrsApiService.getBlock$(matches[1])
|
this.electrsApiService.getBlock$(matches[0])
|
||||||
.subscribe(
|
.subscribe(
|
||||||
(block) => { this.navigate('/block/', matches[1], { state: { data: { block } } }); },
|
(block) => { this.navigate('/block/', matches[0], { state: { data: { block } } }); },
|
||||||
() => { this.navigate('/tx/', matches[0]); });
|
() => { this.navigate('/tx/', matches[0]); });
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<div class="dropdown-menu show" *ngIf="results" [hidden]="!results.hashQuickMatch && !results.otherNetworks.length && !results.addresses.length && !results.nodes.length && !results.channels.length">
|
<div class="dropdown-menu show" *ngIf="results" [hidden]="!results.hashQuickMatch && !results.otherNetworks.length && !results.addresses.length && !results.nodes.length && !results.channels.length && !results.liquidAsset.length">
|
||||||
<ng-template [ngIf]="results.blockHeight">
|
<ng-template [ngIf]="results.blockHeight">
|
||||||
<div class="card-title" i18n="search.bitcoin-block-height">Bitcoin Block Height</div>
|
<div class="card-title" i18n="search.bitcoin-block-height">{{ networkName }} Block Height</div>
|
||||||
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
||||||
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText }"></ng-container>
|
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText }"></ng-container>
|
||||||
</button>
|
</button>
|
||||||
@ -17,20 +17,20 @@
|
|||||||
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText }"></ng-container>
|
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText }"></ng-container>
|
||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template [ngIf]="results.txId">
|
<ng-template [ngIf]="results.txId && !results.liquidAsset.length">
|
||||||
<div class="card-title" i18n="search.bitcoin-transaction">Bitcoin Transaction</div>
|
<div class="card-title" i18n="search.bitcoin-transaction">{{ networkName }} Transaction</div>
|
||||||
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
||||||
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText | shortenString : 13 }"></ng-container>
|
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText | shortenString : 13 }"></ng-container>
|
||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template [ngIf]="results.address">
|
<ng-template [ngIf]="results.address">
|
||||||
<div class="card-title" i18n="search.bitcoin-address">Bitcoin Address</div>
|
<div class="card-title" i18n="search.bitcoin-address">{{ networkName }} Address</div>
|
||||||
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
||||||
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText | shortenString : isMobile ? 20 : 30 }"></ng-container>
|
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText | shortenString : isMobile ? 17 : 30 }"></ng-container>
|
||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template [ngIf]="results.blockHash">
|
<ng-template [ngIf]="results.blockHash">
|
||||||
<div class="card-title" i18n="search.bitcoin-block">Bitcoin Block</div>
|
<div class="card-title" i18n="search.bitcoin-block">{{ networkName }} Block</div>
|
||||||
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
||||||
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText | shortenString : 13 }"></ng-container>
|
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText | shortenString : 13 }"></ng-container>
|
||||||
</button>
|
</button>
|
||||||
@ -39,12 +39,12 @@
|
|||||||
<div class="card-title danger" i18n="search.other-networks">Other Network Address</div>
|
<div class="card-title danger" i18n="search.other-networks">Other Network Address</div>
|
||||||
<ng-template ngFor [ngForOf]="results.otherNetworks" let-otherNetwork let-i="index">
|
<ng-template ngFor [ngForOf]="results.otherNetworks" let-otherNetwork let-i="index">
|
||||||
<button (click)="clickItem(results.hashQuickMatch + i)" [class.active]="(results.hashQuickMatch + i) === activeIdx" [class.inactive]="!otherNetwork.isNetworkAvailable" type="button" role="option" class="dropdown-item">
|
<button (click)="clickItem(results.hashQuickMatch + i)" [class.active]="(results.hashQuickMatch + i) === activeIdx" [class.inactive]="!otherNetwork.isNetworkAvailable" type="button" role="option" class="dropdown-item">
|
||||||
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: otherNetwork.address| shortenString : isMobile ? 20 : 25 }"></ng-container> <b>({{ otherNetwork.network.charAt(0).toUpperCase() + otherNetwork.network.slice(1) }})</b>
|
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: otherNetwork.address| shortenString : isMobile ? 12 : 20 }"></ng-container> <b>({{ otherNetwork.network.charAt(0).toUpperCase() + otherNetwork.network.slice(1) }})</b>
|
||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template [ngIf]="results.addresses.length">
|
<ng-template [ngIf]="results.addresses.length">
|
||||||
<div class="card-title" i18n="search.bitcoin-addresses">Bitcoin Addresses</div>
|
<div class="card-title" i18n="search.bitcoin-addresses">{{ networkName }} Addresses</div>
|
||||||
<ng-template ngFor [ngForOf]="results.addresses" let-address let-i="index">
|
<ng-template ngFor [ngForOf]="results.addresses" let-address let-i="index">
|
||||||
<button (click)="clickItem(results.hashQuickMatch + results.otherNetworks.length + i)" [class.active]="(results.hashQuickMatch + results.otherNetworks.length + i) === activeIdx" type="button" role="option" class="dropdown-item">
|
<button (click)="clickItem(results.hashQuickMatch + results.otherNetworks.length + i)" [class.active]="(results.hashQuickMatch + results.otherNetworks.length + i) === activeIdx" type="button" role="option" class="dropdown-item">
|
||||||
<ngb-highlight [result]="address | shortenString : isMobile ? 25 : 36" [term]="results.searchText"></ngb-highlight>
|
<ngb-highlight [result]="address | shortenString : isMobile ? 25 : 36" [term]="results.searchText"></ngb-highlight>
|
||||||
@ -67,6 +67,12 @@
|
|||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
<ng-template [ngIf]="results.liquidAsset.length">
|
||||||
|
<div class="card-title" i18n="search.liquid-asset">Liquid Asset</div>
|
||||||
|
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
||||||
|
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText | shortenString : 11 }"></ng-container> <b>({{ results.liquidAsset[1] }})</b>
|
||||||
|
</button>
|
||||||
|
</ng-template>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ng-template #goTo let-x i18n="search.go-to">Go to "{{ x }}"</ng-template>
|
<ng-template #goTo let-x i18n="search.go-to">Go to "{{ x }}"</ng-template>
|
||||||
|
@ -10,15 +10,20 @@ export class SearchResultsComponent implements OnChanges {
|
|||||||
@Input() results: any = {};
|
@Input() results: any = {};
|
||||||
@Output() selectedResult = new EventEmitter();
|
@Output() selectedResult = new EventEmitter();
|
||||||
|
|
||||||
isMobile = (window.innerWidth <= 767.98);
|
isMobile = (window.innerWidth <= 1150);
|
||||||
resultsFlattened = [];
|
resultsFlattened = [];
|
||||||
activeIdx = 0;
|
activeIdx = 0;
|
||||||
focusFirst = true;
|
focusFirst = true;
|
||||||
|
networkName = '';
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
public stateService: StateService,
|
public stateService: StateService,
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.networkName = this.stateService.network.charAt(0).toUpperCase() + this.stateService.network.slice(1);
|
||||||
|
}
|
||||||
|
|
||||||
ngOnChanges() {
|
ngOnChanges() {
|
||||||
this.activeIdx = 0;
|
this.activeIdx = 0;
|
||||||
if (this.results) {
|
if (this.results) {
|
||||||
|
@ -299,7 +299,7 @@
|
|||||||
<td [innerHTML]="'‎' + (tx.weight / 4 | vbytes: 2)"></td>
|
<td [innerHTML]="'‎' + (tx.weight / 4 | vbytes: 2)"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr *ngIf="adjustedVsize != null">
|
<tr *ngIf="adjustedVsize != null">
|
||||||
<td i18n="transaction.adjusted-vsize|Transaction Adjusted VSize">Adjusted vsize
|
<td><ng-template i18n="transaction.adjusted-vsize|Transaction Adjusted VSize">Adjusted vsize</ng-template>
|
||||||
<a class="info-link" [routerLink]="['/docs/faq/' | relativeUrl]" fragment="what-is-adjusted-vsize">
|
<a class="info-link" [routerLink]="['/docs/faq/' | relativeUrl]" fragment="what-is-adjusted-vsize">
|
||||||
<fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true"></fa-icon>
|
<fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true"></fa-icon>
|
||||||
</a>
|
</a>
|
||||||
@ -325,7 +325,7 @@
|
|||||||
<td [innerHTML]="'‎' + (tx.locktime | number)"></td>
|
<td [innerHTML]="'‎' + (tx.locktime | number)"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr *ngIf="sigops != null">
|
<tr *ngIf="sigops != null">
|
||||||
<td i18n="transaction.sigops|Transaction Sigops">Sigops
|
<td><ng-template i18n="transaction.sigops|Transaction Sigops">Sigops</ng-template>
|
||||||
<a class="info-link" [routerLink]="['/docs/faq/' | relativeUrl]" fragment="what-are-sigops">
|
<a class="info-link" [routerLink]="['/docs/faq/' | relativeUrl]" fragment="what-are-sigops">
|
||||||
<fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true"></fa-icon>
|
<fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true"></fa-icon>
|
||||||
</a>
|
</a>
|
||||||
|
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
@ -1661,6 +1661,10 @@
|
|||||||
<context context-type="sourcefile">src/app/components/acceleration/acceleration-fees-graph/acceleration-fees-graph.component.html</context>
|
<context context-type="sourcefile">src/app/components/acceleration/acceleration-fees-graph/acceleration-fees-graph.component.html</context>
|
||||||
<context context-type="linenumber">6</context>
|
<context context-type="linenumber">6</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/acceleration/acceleration-fees-graph/acceleration-fees-graph.component.ts</context>
|
||||||
|
<context context-type="linenumber">69</context>
|
||||||
|
</context-group>
|
||||||
<note priority="1" from="description">accelerator.acceleration-fees</note>
|
<note priority="1" from="description">accelerator.acceleration-fees</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="bdb8bbb38e4ca3c73e19dc4167fbe4aec316f818" datatype="html">
|
<trans-unit id="bdb8bbb38e4ca3c73e19dc4167fbe4aec316f818" datatype="html">
|
||||||
@ -1679,25 +1683,6 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">acceleration.total-bid-boost</note>
|
<note priority="1" from="description">acceleration.total-bid-boost</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6c453b11fd7bd159ae30bc381f367bc736d86909" datatype="html">
|
|
||||||
<source>Acceleration Fees</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/acceleration/acceleration-fees-graph/acceleration-fees-graph.component.ts</context>
|
|
||||||
<context context-type="linenumber">69</context>
|
|
||||||
</context-group>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/block-fees-graph/block-fees-graph.component.html</context>
|
|
||||||
<context context-type="linenumber">6</context>
|
|
||||||
</context-group>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/block-fees-graph/block-fees-graph.component.ts</context>
|
|
||||||
<context context-type="linenumber">67</context>
|
|
||||||
</context-group>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context>
|
|
||||||
<context context-type="linenumber">19</context>
|
|
||||||
</context-group>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="4793828002882320882" datatype="html">
|
<trans-unit id="4793828002882320882" datatype="html">
|
||||||
<source>At block: <x id="PH" equiv-text="data[0].data[2]"/></source>
|
<source>At block: <x id="PH" equiv-text="data[0].data[2]"/></source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -1777,8 +1762,8 @@
|
|||||||
<note priority="1" from="description">BTC</note>
|
<note priority="1" from="description">BTC</note>
|
||||||
<note priority="1" from="meaning">shared.btc</note>
|
<note priority="1" from="meaning">shared.btc</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4e0fbac5ba55cf78f1accbaf9c871fb23b4b67d9" datatype="html">
|
<trans-unit id="599dec71fe5c264d05012c7f64080d6347c1dc49" datatype="html">
|
||||||
<source>Success rate</source>
|
<source>Success Rate</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/acceleration/acceleration-stats/acceleration-stats.component.html</context>
|
<context context-type="sourcefile">src/app/components/acceleration/acceleration-stats/acceleration-stats.component.html</context>
|
||||||
<context context-type="linenumber">20</context>
|
<context context-type="linenumber">20</context>
|
||||||
@ -1941,12 +1926,16 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">accelerations.no-accelerations</note>
|
<note priority="1" from="description">accelerations.no-accelerations</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8adc22d4ccfd987ce3e2c1c86d0ccae17d281328" datatype="html">
|
<trans-unit id="e51c45c636401f8bb3bd8cfd1ed5a3c9810c5fa8" datatype="html">
|
||||||
<source>Active accelerations</source>
|
<source>Active Accelerations</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/acceleration/accelerator-dashboard/accelerator-dashboard.component.html</context>
|
<context context-type="sourcefile">src/app/components/acceleration/accelerator-dashboard/accelerator-dashboard.component.html</context>
|
||||||
<context context-type="linenumber">10</context>
|
<context context-type="linenumber">10</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/acceleration/accelerator-dashboard/accelerator-dashboard.component.html</context>
|
||||||
|
<context context-type="linenumber">72</context>
|
||||||
|
</context-group>
|
||||||
<note priority="1" from="description">accelerator.pending-accelerations</note>
|
<note priority="1" from="description">accelerator.pending-accelerations</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="41a9456b7e195dfc4df3d67b09940bda160882af" datatype="html">
|
<trans-unit id="41a9456b7e195dfc4df3d67b09940bda160882af" datatype="html">
|
||||||
@ -1965,14 +1954,6 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">mining.144-blocks</note>
|
<note priority="1" from="description">mining.144-blocks</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="e51c45c636401f8bb3bd8cfd1ed5a3c9810c5fa8" datatype="html">
|
|
||||||
<source>Active 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">72</context>
|
|
||||||
</context-group>
|
|
||||||
<note priority="1" from="description">dashboard.recent-accelerations</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="f0ae1220633178276128371f3965fb53d63581d4" datatype="html">
|
<trans-unit id="f0ae1220633178276128371f3965fb53d63581d4" datatype="html">
|
||||||
<source>Recent Accelerations</source>
|
<source>Recent Accelerations</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -2020,8 +2001,8 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">accelerator.average-max-bid</note>
|
<note priority="1" from="description">accelerator.average-max-bid</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="62be8da2e6a219a43d83a1887e55dc0ae1be155b" datatype="html">
|
<trans-unit id="16fedee43f919b6a0992f32aeec5d6938e8d6b76" datatype="html">
|
||||||
<source>Total vsize</source>
|
<source>Total Vsize</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/acceleration/pending-stats/pending-stats.component.html</context>
|
<context context-type="sourcefile">src/app/components/acceleration/pending-stats/pending-stats.component.html</context>
|
||||||
<context context-type="linenumber">20</context>
|
<context context-type="linenumber">20</context>
|
||||||
@ -2563,6 +2544,22 @@
|
|||||||
<context context-type="linenumber">73</context>
|
<context context-type="linenumber">73</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="6c453b11fd7bd159ae30bc381f367bc736d86909" datatype="html">
|
||||||
|
<source>Block Fees</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/block-fees-graph/block-fees-graph.component.html</context>
|
||||||
|
<context context-type="linenumber">6</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/block-fees-graph/block-fees-graph.component.ts</context>
|
||||||
|
<context context-type="linenumber">67</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context>
|
||||||
|
<context context-type="linenumber">19</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">mining.block-fees</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="meta.description.bitcoin.graphs.block-fees" datatype="html">
|
<trans-unit id="meta.description.bitcoin.graphs.block-fees" datatype="html">
|
||||||
<source>See the average mining fees earned per Bitcoin block visualized in BTC and USD over time.</source>
|
<source>See the average mining fees earned per Bitcoin block visualized in BTC and USD over time.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -4268,13 +4265,13 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">master-page.graphs</note>
|
<note priority="1" from="description">master-page.graphs</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2efef6dfa1c2d2d8fa05b337eccf3e0006af1e94" datatype="html">
|
<trans-unit id="6b867dc61c6a92f3229f1950f9f2d414790cce95" datatype="html">
|
||||||
<source>Acceleration Dashboard</source>
|
<source>Accelerator Dashboard</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/master-page/master-page.component.html</context>
|
<context context-type="sourcefile">src/app/components/master-page/master-page.component.html</context>
|
||||||
<context context-type="linenumber">56</context>
|
<context context-type="linenumber">56</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">master-page.acceleration-dashboard</note>
|
<note priority="1" from="description">master-page.accelerator-dashboard</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="142e923d3b04186ac6ba23387265d22a2fa404e0" datatype="html">
|
<trans-unit id="142e923d3b04186ac6ba23387265d22a2fa404e0" datatype="html">
|
||||||
<source>Lightning Explorer</source>
|
<source>Lightning Explorer</source>
|
||||||
@ -5547,11 +5544,11 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">show-diagram</note>
|
<note priority="1" from="description">show-diagram</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="9ad256cfb48e88f5bc56243641c992d53461f482" datatype="html">
|
<trans-unit id="a8a4dd861f790141e19f773153cf42b5d0b0e6b6" datatype="html">
|
||||||
<source>Adjusted vsize <x id="START_LINK" ctype="x-a" equiv-text="<a class="info-link" [routerLink]="['/docs/faq/' | relativeUrl]" fragment="what-is-adjusted-vsize">"/><x id="START_TAG_FA_ICON" ctype="x-fa_icon" equiv-text="<fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true">"/><x id="CLOSE_TAG_FA_ICON" ctype="x-fa_icon"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></source>
|
<source>Adjusted vsize</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||||
<context context-type="linenumber">302,306</context>
|
<context context-type="linenumber">302</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">Transaction Adjusted VSize</note>
|
<note priority="1" from="description">Transaction Adjusted VSize</note>
|
||||||
<note priority="1" from="meaning">transaction.adjusted-vsize</note>
|
<note priority="1" from="meaning">transaction.adjusted-vsize</note>
|
||||||
@ -5564,11 +5561,11 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">transaction.locktime</note>
|
<note priority="1" from="description">transaction.locktime</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="c93f5659ea1b4a8c59a8e4710cbcdb62b37206b0" datatype="html">
|
<trans-unit id="3dd65e8fa7035988a691aadcb583862c2a9e336a" datatype="html">
|
||||||
<source>Sigops <x id="START_LINK" ctype="x-a" equiv-text="<a class="info-link" [routerLink]="['/docs/faq/' | relativeUrl]" fragment="what-are-sigops">"/><x id="START_TAG_FA_ICON" ctype="x-fa_icon" equiv-text="<fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true">"/><x id="CLOSE_TAG_FA_ICON" ctype="x-fa_icon"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></source>
|
<source>Sigops</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||||
<context context-type="linenumber">328,332</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">Transaction Sigops</note>
|
<note priority="1" from="description">Transaction Sigops</note>
|
||||||
<note priority="1" from="meaning">transaction.sigops</note>
|
<note priority="1" from="meaning">transaction.sigops</note>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -22,7 +22,7 @@ var PATH;
|
|||||||
if (process.argv[2]) {
|
if (process.argv[2]) {
|
||||||
PATH = process.argv[2];
|
PATH = process.argv[2];
|
||||||
PATH += PATH.endsWith("/") ? "" : "/"
|
PATH += PATH.endsWith("/") ? "" : "/"
|
||||||
PATH = path.normalize(PATH);
|
PATH = path.resolve(path.normalize(PATH));
|
||||||
console.log(`[sync-assets] using PATH ${PATH}`);
|
console.log(`[sync-assets] using PATH ${PATH}`);
|
||||||
if (!fs.existsSync(PATH)){
|
if (!fs.existsSync(PATH)){
|
||||||
console.log(`${LOG_TAG} ${PATH} does not exist, creating`);
|
console.log(`${LOG_TAG} ${PATH} does not exist, creating`);
|
||||||
@ -110,7 +110,7 @@ function downloadMiningPoolLogos$() {
|
|||||||
}
|
}
|
||||||
let downloadedCount = 0;
|
let downloadedCount = 0;
|
||||||
for (const poolLogo of poolLogos) {
|
for (const poolLogo of poolLogos) {
|
||||||
const filePath = PATH + `mining-pools/${poolLogo.name}`;
|
const filePath = `${PATH}/mining-pools/${poolLogo.name}`;
|
||||||
if (fs.existsSync(filePath)) {
|
if (fs.existsSync(filePath)) {
|
||||||
const localHash = getLocalHash(filePath);
|
const localHash = getLocalHash(filePath);
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
@ -124,7 +124,7 @@ function downloadMiningPoolLogos$() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log(`${LOG_TAG} ${poolLogo.name} is missing, downloading...`);
|
console.log(`${LOG_TAG} ${poolLogo.name} is missing, downloading...`);
|
||||||
const miningPoolsDir = PATH + `mining-pools/`;
|
const miningPoolsDir = `${PATH}/mining-pools/`;
|
||||||
if (!fs.existsSync(miningPoolsDir)){
|
if (!fs.existsSync(miningPoolsDir)){
|
||||||
fs.mkdirSync(miningPoolsDir, { recursive: true });
|
fs.mkdirSync(miningPoolsDir, { recursive: true });
|
||||||
}
|
}
|
||||||
@ -179,7 +179,7 @@ function downloadPromoVideoSubtiles$() {
|
|||||||
}
|
}
|
||||||
let downloadedCount = 0;
|
let downloadedCount = 0;
|
||||||
for (const language of videoLanguages) {
|
for (const language of videoLanguages) {
|
||||||
const filePath = PATH + `promo-video/${language.name}`;
|
const filePath = `${PATH}/promo-video/${language.name}`;
|
||||||
if (fs.existsSync(filePath)) {
|
if (fs.existsSync(filePath)) {
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
console.log(`${LOG_TAG} ${language.name} remote promo video hash ${language.sha}`);
|
console.log(`${LOG_TAG} ${language.name} remote promo video hash ${language.sha}`);
|
||||||
@ -193,7 +193,7 @@ function downloadPromoVideoSubtiles$() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log(`${LOG_TAG} ${language.name} is missing, downloading`);
|
console.log(`${LOG_TAG} ${language.name} is missing, downloading`);
|
||||||
const promoVideosDir = PATH + `promo-video/`;
|
const promoVideosDir = `${PATH}/promo-video/`;
|
||||||
if (!fs.existsSync(promoVideosDir)){
|
if (!fs.existsSync(promoVideosDir)){
|
||||||
fs.mkdirSync(promoVideosDir, { recursive: true });
|
fs.mkdirSync(promoVideosDir, { recursive: true });
|
||||||
}
|
}
|
||||||
@ -250,7 +250,7 @@ function downloadPromoVideo$() {
|
|||||||
if (item.name !== 'promo.mp4') {
|
if (item.name !== 'promo.mp4') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const filePath = PATH + `promo-video/mempool-promo.mp4`;
|
const filePath = `${PATH}/promo-video/mempool-promo.mp4`;
|
||||||
if (fs.existsSync(filePath)) {
|
if (fs.existsSync(filePath)) {
|
||||||
const localHash = getLocalHash(filePath);
|
const localHash = getLocalHash(filePath);
|
||||||
|
|
||||||
@ -288,16 +288,16 @@ if (configContent.BASE_MODULE && configContent.BASE_MODULE === 'liquid') {
|
|||||||
const testnetAssetsMinimalJsonUrl = 'https://raw.githubusercontent.com/Blockstream/asset_registry_testnet_db/master/index.minimal.json';
|
const testnetAssetsMinimalJsonUrl = 'https://raw.githubusercontent.com/Blockstream/asset_registry_testnet_db/master/index.minimal.json';
|
||||||
|
|
||||||
console.log(`${LOG_TAG} Downloading assets`);
|
console.log(`${LOG_TAG} Downloading assets`);
|
||||||
download(PATH + 'assets.json', assetsJsonUrl);
|
download(`${PATH}/assets.json`, assetsJsonUrl);
|
||||||
|
|
||||||
console.log(`${LOG_TAG} Downloading assets minimal`);
|
console.log(`${LOG_TAG} Downloading assets minimal`);
|
||||||
download(PATH + 'assets.minimal.json', assetsMinimalJsonUrl);
|
download(`${PATH}/assets.minimal.json`, assetsMinimalJsonUrl);
|
||||||
|
|
||||||
console.log(`${LOG_TAG} Downloading testnet assets`);
|
console.log(`${LOG_TAG} Downloading testnet assets`);
|
||||||
download(PATH + 'assets-testnet.json', testnetAssetsJsonUrl);
|
download(`${PATH}/assets-testnet.json`, testnetAssetsJsonUrl);
|
||||||
|
|
||||||
console.log(`${LOG_TAG} Downloading testnet assets minimal`);
|
console.log(`${LOG_TAG} Downloading testnet assets minimal`);
|
||||||
download(PATH + 'assets-testnet.minimal.json', testnetAssetsMinimalJsonUrl);
|
download(`${PATH}/assets-testnet.minimal.json`, testnetAssetsMinimalJsonUrl);
|
||||||
} else {
|
} else {
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
console.log(`${LOG_TAG} BASE_MODULE is not set to Liquid (${configContent.BASE_MODULE}), skipping downloading assets`);
|
console.log(`${LOG_TAG} BASE_MODULE is not set to Liquid (${configContent.BASE_MODULE}), skipping downloading assets`);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user