Merge branch 'master' into nymkappa/fix-btcpay-invoice-amount
This commit is contained in:
commit
11113041bb
@ -144,13 +144,13 @@ describe('Mainnet', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
['BC1PQYQSZQ', 'bc1PqYqSzQ'].forEach((searchTerm) => {
|
['BC1PQYQS', 'bc1PqYqS'].forEach((searchTerm) => {
|
||||||
it(`allows searching for partial case insensitive bech32m addresses: ${searchTerm}`, () => {
|
it(`allows searching for partial case insensitive bech32m addresses: ${searchTerm}`, () => {
|
||||||
cy.visit('/');
|
cy.visit('/');
|
||||||
cy.get('.search-box-container > .form-control').type(searchTerm).then(() => {
|
cy.get('.search-box-container > .form-control').type(searchTerm).then(() => {
|
||||||
cy.get('app-search-results button.dropdown-item').should('have.length', 1);
|
cy.get('app-search-results button.dropdown-item').should('have.length', 10);
|
||||||
cy.get('app-search-results button.dropdown-item.active').click().then(() => {
|
cy.get('app-search-results button.dropdown-item.active').click().then(() => {
|
||||||
cy.url().should('include', '/address/bc1pqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsyjer9e');
|
cy.url().should('include', '/address/bc1pqyqs26fs4gnyw4aqttyjqa5ta7075zzfjftyz98qa8vdr49dh7fqm2zkv3');
|
||||||
cy.waitForSkeletonGone();
|
cy.waitForSkeletonGone();
|
||||||
cy.get('.text-center').should('not.have.text', 'Invalid Bitcoin address');
|
cy.get('.text-center').should('not.have.text', 'Invalid Bitcoin address');
|
||||||
});
|
});
|
||||||
@ -158,13 +158,13 @@ describe('Mainnet', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
['BC1Q000375VXCU', 'bC1q000375vXcU'].forEach((searchTerm) => {
|
['BC1Q0003', 'bC1q0003'].forEach((searchTerm) => {
|
||||||
it(`allows searching for partial case insensitive bech32 addresses: ${searchTerm}`, () => {
|
it(`allows searching for partial case insensitive bech32 addresses: ${searchTerm}`, () => {
|
||||||
cy.visit('/');
|
cy.visit('/');
|
||||||
cy.get('.search-box-container > .form-control').type(searchTerm).then(() => {
|
cy.get('.search-box-container > .form-control').type(searchTerm).then(() => {
|
||||||
cy.get('app-search-results button.dropdown-item').should('have.length', 1);
|
cy.get('app-search-results button.dropdown-item').should('have.length', 10);
|
||||||
cy.get('app-search-results button.dropdown-item.active').click().then(() => {
|
cy.get('app-search-results button.dropdown-item.active').click().then(() => {
|
||||||
cy.url().should('include', '/address/bc1q000375vxcuf5v04lmwy22vy2thvhqkxghgq7dy');
|
cy.url().should('include', '/address/bc1q000303cgr9zazthut63kdktwtatfe206um8nyh');
|
||||||
cy.waitForSkeletonGone();
|
cy.waitForSkeletonGone();
|
||||||
cy.get('.text-center').should('not.have.text', 'Invalid Bitcoin address');
|
cy.get('.text-center').should('not.have.text', 'Invalid Bitcoin address');
|
||||||
});
|
});
|
||||||
|
41
frontend/package-lock.json
generated
41
frontend/package-lock.json
generated
@ -32,6 +32,7 @@
|
|||||||
"bootstrap": "~4.6.2",
|
"bootstrap": "~4.6.2",
|
||||||
"browserify": "^17.0.0",
|
"browserify": "^17.0.0",
|
||||||
"clipboard": "^2.0.11",
|
"clipboard": "^2.0.11",
|
||||||
|
"cypress": "^13.13.0",
|
||||||
"domino": "^2.1.6",
|
"domino": "^2.1.6",
|
||||||
"echarts": "~5.5.0",
|
"echarts": "~5.5.0",
|
||||||
"esbuild": "^0.22.0",
|
"esbuild": "^0.22.0",
|
||||||
@ -62,7 +63,7 @@
|
|||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@cypress/schematic": "^2.5.0",
|
"@cypress/schematic": "^2.5.0",
|
||||||
"@types/cypress": "^1.1.3",
|
"@types/cypress": "^1.1.3",
|
||||||
"cypress": "^13.12.0",
|
"cypress": "^13.13.0",
|
||||||
"cypress-fail-on-console-error": "~5.1.0",
|
"cypress-fail-on-console-error": "~5.1.0",
|
||||||
"cypress-wait-until": "^2.0.1",
|
"cypress-wait-until": "^2.0.1",
|
||||||
"mock-socket": "~9.3.1",
|
"mock-socket": "~9.3.1",
|
||||||
@ -8043,9 +8044,9 @@
|
|||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/cypress": {
|
"node_modules/cypress": {
|
||||||
"version": "13.12.0",
|
"version": "13.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/cypress/-/cypress-13.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.0.tgz",
|
||||||
"integrity": "sha512-udzS2JilmI9ApO/UuqurEwOvThclin5ntz7K0BtnHBs+tg2Bl9QShLISXpSEMDv/u8b6mqdoAdyKeZiSqKWL8g==",
|
"integrity": "sha512-ou/MQUDq4tcDJI2FsPaod2FZpex4kpIK43JJlcBgWrX8WX7R/05ZxGTuxedOuZBfxjZxja+fbijZGyxiLP6CFA==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -8088,7 +8089,7 @@
|
|||||||
"request-progress": "^3.0.0",
|
"request-progress": "^3.0.0",
|
||||||
"semver": "^7.5.3",
|
"semver": "^7.5.3",
|
||||||
"supports-color": "^8.1.1",
|
"supports-color": "^8.1.1",
|
||||||
"tmp": "~0.2.1",
|
"tmp": "~0.2.3",
|
||||||
"untildify": "^4.0.0",
|
"untildify": "^4.0.0",
|
||||||
"yauzl": "^2.10.0"
|
"yauzl": "^2.10.0"
|
||||||
},
|
},
|
||||||
@ -8265,15 +8266,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cypress/node_modules/tmp": {
|
"node_modules/cypress/node_modules/tmp": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
|
||||||
"integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
|
"integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
|
||||||
"rimraf": "^3.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.17.0"
|
"node": ">=14.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/d": {
|
"node_modules/d": {
|
||||||
@ -24133,9 +24131,9 @@
|
|||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"cypress": {
|
"cypress": {
|
||||||
"version": "13.12.0",
|
"version": "13.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/cypress/-/cypress-13.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.0.tgz",
|
||||||
"integrity": "sha512-udzS2JilmI9ApO/UuqurEwOvThclin5ntz7K0BtnHBs+tg2Bl9QShLISXpSEMDv/u8b6mqdoAdyKeZiSqKWL8g==",
|
"integrity": "sha512-ou/MQUDq4tcDJI2FsPaod2FZpex4kpIK43JJlcBgWrX8WX7R/05ZxGTuxedOuZBfxjZxja+fbijZGyxiLP6CFA==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@cypress/request": "^3.0.0",
|
"@cypress/request": "^3.0.0",
|
||||||
@ -24177,7 +24175,7 @@
|
|||||||
"request-progress": "^3.0.0",
|
"request-progress": "^3.0.0",
|
||||||
"semver": "^7.5.3",
|
"semver": "^7.5.3",
|
||||||
"supports-color": "^8.1.1",
|
"supports-color": "^8.1.1",
|
||||||
"tmp": "~0.2.1",
|
"tmp": "~0.2.3",
|
||||||
"untildify": "^4.0.0",
|
"untildify": "^4.0.0",
|
||||||
"yauzl": "^2.10.0"
|
"yauzl": "^2.10.0"
|
||||||
},
|
},
|
||||||
@ -24287,13 +24285,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tmp": {
|
"tmp": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
|
||||||
"integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
|
"integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
|
||||||
"optional": true,
|
"optional": true
|
||||||
"requires": {
|
|
||||||
"rimraf": "^3.0.0"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -115,7 +115,7 @@
|
|||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@cypress/schematic": "^2.5.0",
|
"@cypress/schematic": "^2.5.0",
|
||||||
"@types/cypress": "^1.1.3",
|
"@types/cypress": "^1.1.3",
|
||||||
"cypress": "^13.12.0",
|
"cypress": "^13.13.0",
|
||||||
"cypress-fail-on-console-error": "~5.1.0",
|
"cypress-fail-on-console-error": "~5.1.0",
|
||||||
"cypress-wait-until": "^2.0.1",
|
"cypress-wait-until": "^2.0.1",
|
||||||
"mock-socket": "~9.3.1",
|
"mock-socket": "~9.3.1",
|
||||||
|
@ -73,7 +73,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<ng-container *ngIf="(etaInfo$ | async) as etaInfo; else loadingEstimate">
|
<ng-container *ngIf="(etaInfo$ | async) as etaInfo; else loadingEstimate">
|
||||||
<small class="form-text checkout-text mb-2" i18n="accelerator.hashrate-percentage-description">Your transaction will be prioritized by up to <strong>{{ etaInfo.hashratePercentage | number : '1.1-1' }}%</strong> of miners.</small>
|
<small class="form-text checkout-text mb-2"><ng-container *ngTemplateOutlet="prioritizedBy; context: {$implicit:etaInfo.hashratePercentage}"></ng-container></small>
|
||||||
<small class="form-text checkout-text mb-2" i18n="accelerator.time-estimate-description">This will reduce your expected waiting time until the first confirmation to <strong><app-time kind="within" [time]="etaInfo.acceleratedETA" [fastRender]="false" [fixedRender]="true"></app-time></strong></small>
|
<small class="form-text checkout-text mb-2" i18n="accelerator.time-estimate-description">This will reduce your expected waiting time until the first confirmation to <strong><app-time kind="within" [time]="etaInfo.acceleratedETA" [fastRender]="false" [fixedRender]="true"></app-time></strong></small>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
@ -256,7 +256,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<div class="row mt-2 mb-2 text-center">
|
<div class="row mt-2 mb-2 text-center">
|
||||||
<div class="col-sm d-flex flex-column">
|
<div class="col-sm d-flex flex-column">
|
||||||
<button type="button" class="mt-1 btn btn-secondary btn-sm rounded-pill align-self-center" style="width: 200px" (click)="moveToStep('summary')">Go Back</button>
|
<button type="button" class="mt-1 btn btn-secondary btn-sm rounded-pill align-self-center" style="width: 200px" (click)="moveToStep('summary')" i18n="go-back">Go back</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -287,12 +287,12 @@
|
|||||||
<div class="form-group form-check mb-2">
|
<div class="form-group form-check mb-2">
|
||||||
<input type="radio" [checked]="selectedOption === 'wait'" class="form-check-input" id="wait" name="accel" (change)="selectedOptionChanged($event)">
|
<input type="radio" [checked]="selectedOption === 'wait'" class="form-check-input" id="wait" name="accel" (change)="selectedOptionChanged($event)">
|
||||||
<label class="form-check-label d-flex flex-column" for="wait">
|
<label class="form-check-label d-flex flex-column" for="wait">
|
||||||
<span class="font-weight-bold">Wait</span>
|
<span class="font-weight-bold" i18n="accelerator.wait">Wait</span>
|
||||||
@if (eta.blocks < 7) {
|
@if (eta.blocks < 7) {
|
||||||
<span class="checkout-text">Confirmation expected <app-time kind="within" [time]="eta.time" [fastRender]="false" [fixedRender]="true"></app-time></span>
|
<span class="checkout-text"><ng-container i18n="accelerator.confirmation-expected">Confirmation expected</ng-container> <app-time kind="within" [time]="eta.time" [fastRender]="false" [fixedRender]="true"></app-time></span>
|
||||||
} @else {
|
} @else {
|
||||||
<span class="checkout-text">
|
<span class="checkout-text">
|
||||||
<span>Confirmation expected within several hours</span>
|
<span i18n="accelerator.confirmation-expected-within-hours">Confirmation expected within several hours</span>
|
||||||
</span>
|
</span>
|
||||||
}
|
}
|
||||||
</label>
|
</label>
|
||||||
@ -322,7 +322,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="pie d-none d-lg-flex">
|
<div class="pie d-none d-lg-flex">
|
||||||
<small class="form-text checkout-text mb-2" i18n="accelerator.hashrate-percentage-description">Your transaction will be prioritized by up to {{ etaInfo.hashratePercentage | number : '1.1-1' }}% of miners.</small>
|
<small class="form-text checkout-text mb-2"><ng-container *ngTemplateOutlet="prioritizedBy; context: {$implicit:etaInfo.hashratePercentage}"></ng-container></small>
|
||||||
<app-active-acceleration-box [miningStats]="miningStats" [pools]="estimate.pools" [chartOnly]="true"></app-active-acceleration-box>
|
<app-active-acceleration-box [miningStats]="miningStats" [pools]="estimate.pools" [chartOnly]="true"></app-active-acceleration-box>
|
||||||
</div>
|
</div>
|
||||||
<ng-container *ngTemplateOutlet="accelerateButton"></ng-container>
|
<ng-container *ngTemplateOutlet="accelerateButton"></ng-container>
|
||||||
@ -347,24 +347,24 @@
|
|||||||
<span><ng-container *ngTemplateOutlet="accelerateTo; context: {$implicit:(userBid + estimate.txSummary.effectiveFee) / estimate.txSummary.effectiveVsize}"></ng-container></span>
|
<span><ng-container *ngTemplateOutlet="accelerateTo; context: {$implicit:(userBid + estimate.txSummary.effectiveFee) / estimate.txSummary.effectiveVsize}"></ng-container></span>
|
||||||
<span class="checkout-text">
|
<span class="checkout-text">
|
||||||
@if (!calculating) {
|
@if (!calculating) {
|
||||||
For an additional <app-fiat [value]="cost"></app-fiat> (<span><small style="font-family: monospace;">{{ cost | number }}</small> <span class="symbol" i18n="shared.sats">sats</span></span>)
|
<ng-container i18n="accelerator.for-an-additional-cost">For an additional</ng-container> <app-fiat [value]="cost"></app-fiat> (<span><small style="font-family: monospace;">{{ cost | number }}</small> <span class="symbol" i18n="shared.sats">sats</span></span>)
|
||||||
} @else {
|
} @else {
|
||||||
<span class="estimating">Calculating cost...</span>
|
<span class="estimating">Calculating cost...</span>
|
||||||
}
|
}
|
||||||
</span>
|
</span>
|
||||||
<span class="checkout-text" *ngIf="(etaInfo$ | async) as etaInfo">
|
<span class="checkout-text" *ngIf="(etaInfo$ | async) as etaInfo">
|
||||||
Reducing expected confirmation time to <app-time kind="within" [time]="etaInfo.acceleratedETA" [fastRender]="false" [fixedRender]="true"></app-time>
|
<ng-container i18n="accelerator.reducing-expected-confirmation-time">Reducing expected confirmation time to <app-time kind="within" [time]="etaInfo.acceleratedETA" [fastRender]="false" [fixedRender]="true"></app-time></ng-container>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md pie d-none d-md-flex" *ngIf="!forceMobile">
|
<div class="col-md pie d-none d-md-flex" *ngIf="!forceMobile">
|
||||||
<small class="form-text checkout-text mb-2" i18n="accelerator.hashrate-percentage-description" *ngIf="(etaInfo$ | async) as etaInfo">Your transaction will be prioritized by up to {{ etaInfo.hashratePercentage | number : '1.1-1' }}% of miners.</small>
|
<small class="form-text checkout-text mb-2" *ngIf="(etaInfo$ | async) as etaInfo"><ng-container *ngTemplateOutlet="prioritizedBy; context: {$implicit:etaInfo.hashratePercentage}"></ng-container></small>
|
||||||
<app-active-acceleration-box [miningStats]="miningStats" [pools]="estimate.pools" [chartOnly]="true"></app-active-acceleration-box>
|
<app-active-acceleration-box [miningStats]="miningStats" [pools]="estimate.pools" [chartOnly]="true"></app-active-acceleration-box>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="payment-area mt-2 p-2" [class.disabled]="error || showSuccess" style="font-size: 14px;">
|
<div class="payment-area mt-2 p-2" [class.disabled]="error || showSuccess" style="font-size: 14px;">
|
||||||
<div class="row text-center justify-content-center mx-2">
|
<div class="row text-center justify-content-center mx-2">
|
||||||
<p>Payment to mempool.space for acceleration of txid <a [routerLink]="'/tx/' + tx.txid" target="_blank"> {{ tx.txid.substr(0, 10) }}..{{ tx.txid.substr(-10) }}</a></p>
|
<p i18n="accelerator.payment-to-mempool-space">Payment to mempool.space for acceleration of txid <a [routerLink]="'/tx/' + tx.txid" target="_blank">{{ tx.txid.substr(0, 10) }}..{{ tx.txid.substr(-10) }}</a></p>
|
||||||
</div>
|
</div>
|
||||||
@if (canPayWithBalance || !(canPayWithBitcoin || canPayWithCashapp)) {
|
@if (canPayWithBalance || !(canPayWithBitcoin || canPayWithCashapp)) {
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -380,10 +380,10 @@
|
|||||||
@if (canPayWithBitcoin) {
|
@if (canPayWithBitcoin) {
|
||||||
<div class="col-sm text-center d-flex flex-column justify-content-center align-items-center">
|
<div class="col-sm text-center d-flex flex-column justify-content-center align-items-center">
|
||||||
@if (invoice) {
|
@if (invoice) {
|
||||||
<p>Pay <span><small style="font-family: monospace;">{{ ((invoice.btcDue * 100_000_000) || cost) | number }}</small> <span class="symbol" i18n="shared.sats">sats</span></span></p>
|
<p><ng-container i18n="transaction.pay|Pay button label">Pay</ng-container> <span><small style="font-family: monospace;">{{ ((invoice.btcDue * 100_000_000) || cost) | number }}</small> <span class="symbol" i18n="shared.sats">sats</span></span></p>
|
||||||
<app-bitcoin-invoice style="width: 100%;" [invoice]="invoice" [invoiceId]="invoice.btcpayInvoiceId" [minimal]="true" (completed)="bitcoinPaymentCompleted()"></app-bitcoin-invoice>
|
<app-bitcoin-invoice style="width: 100%;" [invoice]="invoice" [invoiceId]="invoice.btcpayInvoiceId" [minimal]="true" (completed)="bitcoinPaymentCompleted()"></app-bitcoin-invoice>
|
||||||
} @else {
|
} @else {
|
||||||
<p>Loading invoice...</p>
|
<p i18n="accelerator.loading-invoice">Loading invoice...</p>
|
||||||
<div class="d-flex align-items-center justify-content-center" style="width: 100%; height: 292px;">
|
<div class="d-flex align-items-center justify-content-center" style="width: 100%; height: 292px;">
|
||||||
<div class="m-4 spinner-border text-light" style="width: 25px; height: 25px"></div>
|
<div class="m-4 spinner-border text-light" style="width: 25px; height: 25px"></div>
|
||||||
</div>
|
</div>
|
||||||
@ -397,7 +397,7 @@
|
|||||||
}
|
}
|
||||||
@if (canPayWithCashapp) {
|
@if (canPayWithCashapp) {
|
||||||
<div class="col-sm text-center d-flex flex-column justify-content-center align-items-center">
|
<div class="col-sm text-center d-flex flex-column justify-content-center align-items-center">
|
||||||
<p>Pay <app-fiat [value]="cost"></app-fiat> with</p>
|
<p><ng-container i18n="transaction.pay|Pay button label">Pay</ng-container> <app-fiat [value]="cost"></app-fiat> with</p>
|
||||||
<img class="paymentMethod mx-2" src="/resources/cash-app.svg" height=55 (click)="moveToStep('cashapp')">
|
<img class="paymentMethod mx-2" src="/resources/cash-app.svg" height=55 (click)="moveToStep('cashapp')">
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@ -418,21 +418,21 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<div class="row mt-2 mb-2 text-center">
|
<div class="row mt-2 mb-2 text-center">
|
||||||
<div class="col-sm d-flex flex-column">
|
<div class="col-sm d-flex flex-column">
|
||||||
<button type="button" class="mt-1 btn btn-secondary btn-sm rounded-pill align-self-center" style="width: 200px" (click)="moveToStep('summary')">Go Back</button>
|
<button type="button" class="mt-1 btn btn-secondary btn-sm rounded-pill align-self-center" style="width: 200px" (click)="moveToStep('summary')" i18n="go-back">Go back</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
} @else if (step === 'cashapp') {
|
} @else if (step === 'cashapp') {
|
||||||
<!-- Show checkout page -->
|
<!-- Show checkout page -->
|
||||||
<div class="row mb-md-1 text-center">
|
<div class="row mb-md-1 text-center">
|
||||||
<div class="col-sm" id="confirm-payment-title">
|
<div class="col-sm" id="confirm-payment-title">
|
||||||
<h1 style="font-size: larger;"><ng-content select="[slot='checkout-title']"></ng-content><span class="default-slot">Confirm your payment</span></h1>
|
<h1 style="font-size: larger;"><ng-content select="[slot='checkout-title']"></ng-content><span class="default-slot" i18n="accelerator.confirm-your-payment">Confirm your payment</span></h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row text-center">
|
<div class="row text-center">
|
||||||
<div class="col-sm">
|
<div class="col-sm">
|
||||||
<div class="form-group w-100" style="font-size: 14px">
|
<div class="form-group w-100" style="font-size: 14px">
|
||||||
Payment to mempool.space for acceleration of txid <a [routerLink]="'/tx/' + tx.txid" target="_blank">{{ tx.txid.substr(0, 10) }}..{{ tx.txid.substr(-10) }}</a>
|
<ng-container i18n="accelerator.payment-to-mempool-space">Payment to mempool.space for acceleration of txid <a [routerLink]="'/tx/' + tx.txid" target="_blank">{{ tx.txid.substr(0, 10) }}..{{ tx.txid.substr(-10) }}</a></ng-container>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -441,11 +441,11 @@
|
|||||||
<div class="row text-center mt-1">
|
<div class="row text-center mt-1">
|
||||||
<div class="col-sm">
|
<div class="col-sm">
|
||||||
<div class="form-group w-100">
|
<div class="form-group w-100">
|
||||||
<span><u><strong>Total additional cost</strong></u><br>
|
<span><u><strong i18n="accelerator.total-additional-cost">Total additional cost</strong></u><br>
|
||||||
<span style="font-size: 16px" class="d-block mt-2">
|
<span style="font-size: 16px" class="d-block mt-2">
|
||||||
Pay
|
<ng-container i18n="transaction.pay|Pay button label">Pay</ng-container>
|
||||||
<strong><app-fiat [value]="cost"></app-fiat></strong>
|
<strong><app-fiat [value]="cost"></app-fiat></strong>
|
||||||
with
|
<ng-container i18n="accelerator.pay-with">with</ng-container>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@ -459,7 +459,7 @@
|
|||||||
<div id="cash-app-pay" class="d-inline-block" [style]="loadingCashapp ? 'opacity: 0; width: 0px; height: 0px; pointer-events: none;' : ''"></div>
|
<div id="cash-app-pay" class="d-inline-block" [style]="loadingCashapp ? 'opacity: 0; width: 0px; height: 0px; pointer-events: none;' : ''"></div>
|
||||||
@if (loadingCashapp) {
|
@if (loadingCashapp) {
|
||||||
<div display="d-flex flex-row justify-content-center">
|
<div display="d-flex flex-row justify-content-center">
|
||||||
<span>Loading payment method...</span>
|
<span i18n="accelerator.loading-payment-method">Loading payment method...</span>
|
||||||
<div class="ml-2 spinner-border text-light" style="width: 25px; height: 25px"></div>
|
<div class="ml-2 spinner-border text-light" style="width: 25px; height: 25px"></div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@ -470,14 +470,14 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<div class="row mt-2 mb-2 text-center">
|
<div class="row mt-2 mb-2 text-center">
|
||||||
<div class="col-sm d-flex flex-column">
|
<div class="col-sm d-flex flex-column">
|
||||||
<button type="button" class="mt-1 btn btn-secondary btn-sm rounded-pill align-self-center" style="width: 200px" (click)="moveToStep('checkout')">Go Back</button>
|
<button type="button" class="mt-1 btn btn-secondary btn-sm rounded-pill align-self-center" style="width: 200px" (click)="moveToStep('checkout')" i18n="go-back">Go back</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@else if (step === 'processing') {
|
@else if (step === 'processing') {
|
||||||
<div class="row mb-1 text-center">
|
<div class="row mb-1 text-center">
|
||||||
<div class="col-sm">
|
<div class="col-sm">
|
||||||
<h1 style="font-size: larger;"><ng-content select="[slot='processing-title']"></ng-content><span class="default-slot">Confirming your payment</span></h1>
|
<h1 style="font-size: larger;"><ng-content select="[slot='processing-title']"></ng-content><span class="default-slot" i18n="accelerator.confirming-your-payment">Confirming your payment</span></h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -487,7 +487,7 @@
|
|||||||
<!-- Processing payment -->
|
<!-- Processing payment -->
|
||||||
<div id="cash-app-pay" class="d-inline-block" [style]="'opacity: 0; width: 0px; height: 0px; pointer-events: none;'"></div>
|
<div id="cash-app-pay" class="d-inline-block" [style]="'opacity: 0; width: 0px; height: 0px; pointer-events: none;'"></div>
|
||||||
<div display="d-flex flex-row justify-content-center">
|
<div display="d-flex flex-row justify-content-center">
|
||||||
<span>We are processing your payment...</span>
|
<span i18n="accelerator.payment-processing">We are processing your payment...</span>
|
||||||
<div class="ml-2 spinner-border text-light" style="width: 25px; height: 25px"></div>
|
<div class="ml-2 spinner-border text-light" style="width: 25px; height: 25px"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -497,14 +497,14 @@
|
|||||||
@else if (step === 'paid') {
|
@else if (step === 'paid') {
|
||||||
<div class="row mb-1 text-center">
|
<div class="row mb-1 text-center">
|
||||||
<div class="col-sm">
|
<div class="col-sm">
|
||||||
<h1 style="font-size: larger;"><ng-content select="[slot='accelerating-title']"></ng-content><span class="default-slot">Accelerating your transaction</span></h1>
|
<h1 style="font-size: larger;"><ng-content select="[slot='accelerating-title']"></ng-content><span class="default-slot" i18n="accelerator.accelerating-your-transaction">Accelerating your transaction</span></h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row text-center mt-1">
|
<div class="row text-center mt-1">
|
||||||
<div class="col-sm">
|
<div class="col-sm">
|
||||||
<div class="d-flex flex-row justify-content-center align-items-center">
|
<div class="d-flex flex-row justify-content-center align-items-center">
|
||||||
<span>Confirming your acceleration with our mining pool partners...</span>
|
<span i18n="accelerator.confirming-acceleration-with-miners">Confirming your acceleration with our mining pool partners...</span>
|
||||||
<div class="ml-2 spinner-border text-light" style="width: 25px; height: 25px"></div>
|
<div class="ml-2 spinner-border text-light" style="width: 25px; height: 25px"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -514,11 +514,11 @@
|
|||||||
|
|
||||||
<ng-template #accelerateOption let-etaInfo="etaInfo">
|
<ng-template #accelerateOption let-etaInfo="etaInfo">
|
||||||
<span><ng-container *ngTemplateOutlet="accelerateTo; context: {$implicit:(userBid + estimate.txSummary.effectiveFee) / estimate.txSummary.effectiveVsize}"></ng-container> <ng-container *ngTemplateOutlet="customizeButton"></ng-container></span>
|
<span><ng-container *ngTemplateOutlet="accelerateTo; context: {$implicit:(userBid + estimate.txSummary.effectiveFee) / estimate.txSummary.effectiveVsize}"></ng-container> <ng-container *ngTemplateOutlet="customizeButton"></ng-container></span>
|
||||||
<span class="checkout-text">Confirmation expected <app-time kind="within" [time]="etaInfo.acceleratedETA" [fastRender]="false" [fixedRender]="true"></app-time><br>
|
<span class="checkout-text"><ng-container i18n="accelerator.confirmation-expected">Confirmation expected</ng-container> <app-time kind="within" [time]="etaInfo.acceleratedETA" [fastRender]="false" [fixedRender]="true"></app-time><br>
|
||||||
@if (!calculating) {
|
@if (!calculating) {
|
||||||
<app-fiat [value]="cost"></app-fiat>fee (<span><small style="font-family: monospace;">{{ cost | number }}</small> <span class="symbol" i18n="shared.sats">sats</span></span>)
|
<app-fiat [value]="cost"></app-fiat> (<span><small style="font-family: monospace;">{{ cost | number }}</small> <span class="symbol" i18n="shared.sats">sats</span></span>)
|
||||||
} @else {
|
} @else {
|
||||||
<span class="estimating">Calculating cost...</span>
|
<span class="estimating" i18n="accelerator.calculating-cost">Calculating cost...</span>
|
||||||
}
|
}
|
||||||
</span>
|
</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
@ -533,7 +533,7 @@
|
|||||||
@if (isLoggedIn() || canPayWithBitcoin || canPayWithCashapp) {
|
@if (isLoggedIn() || canPayWithBitcoin || canPayWithCashapp) {
|
||||||
<button type="button" class="mt-1 btn btn-purple rounded-pill align-self-center d-flex flex-row justify-content-center align-items-center" [class.disabled]="!canPay || calculating || (!advancedEnabled && selectedOption !== 'accel')" style="width: 200px" (click)="moveToStep('checkout')">
|
<button type="button" class="mt-1 btn btn-purple rounded-pill align-self-center d-flex flex-row justify-content-center align-items-center" [class.disabled]="!canPay || calculating || (!advancedEnabled && selectedOption !== 'accel')" style="width: 200px" (click)="moveToStep('checkout')">
|
||||||
<img src="/resources/mempool-accelerator-sparkles-light.svg" height="20" class="mr-2" style="margin-left: -10px">
|
<img src="/resources/mempool-accelerator-sparkles-light.svg" height="20" class="mr-2" style="margin-left: -10px">
|
||||||
<span>Accelerate</span>
|
<span i18n="transaction.accelerate|Accelerate button label">Accelerate</span>
|
||||||
</button>
|
</button>
|
||||||
} @else {
|
} @else {
|
||||||
<button type="button" class="mt-1 btn btn-purple rounded-pill align-self-center d-flex flex-row justify-content-center align-items-center disabled" style="width: 200px">
|
<button type="button" class="mt-1 btn btn-purple rounded-pill align-self-center d-flex flex-row justify-content-center align-items-center disabled" style="width: 200px">
|
||||||
@ -547,7 +547,7 @@
|
|||||||
@if (isLoggedIn()) {
|
@if (isLoggedIn()) {
|
||||||
<button type="button" class="mt-1 btn btn-purple rounded-pill align-self-center d-flex flex-row justify-content-center align-items-center" [class.disabled]="!canPay || calculating" style="width: 200px" (click)="accelerateWithMempoolAccount()">
|
<button type="button" class="mt-1 btn btn-purple rounded-pill align-self-center d-flex flex-row justify-content-center align-items-center" [class.disabled]="!canPay || calculating" style="width: 200px" (click)="accelerateWithMempoolAccount()">
|
||||||
<img src="/resources/mempool-accelerator-sparkles-light.svg" height="20" class="mr-2" style="margin-left: -10px">
|
<img src="/resources/mempool-accelerator-sparkles-light.svg" height="20" class="mr-2" style="margin-left: -10px">
|
||||||
<span>Pay</span>
|
<span i18n="transaction.pay|Pay button label">Pay</span>
|
||||||
</button>
|
</button>
|
||||||
} @else {
|
} @else {
|
||||||
<button type="button" class="mt-1 btn btn-purple rounded-pill align-self-center d-flex flex-row justify-content-center align-items-center disabled" style="width: 200px">
|
<button type="button" class="mt-1 btn btn-purple rounded-pill align-self-center d-flex flex-row justify-content-center align-items-center disabled" style="width: 200px">
|
||||||
@ -556,3 +556,5 @@
|
|||||||
</button>
|
</button>
|
||||||
}
|
}
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
|
<ng-template #prioritizedBy let-i i18n="accelerator.hashrate-percentage-description">Your transaction will be prioritized by up to <strong>{{ i | number : '1.1-1' }}%</strong> of miners.</ng-template>
|
||||||
|
@ -122,6 +122,7 @@ export class AccelerateCheckout implements OnInit, OnDestroy {
|
|||||||
this.authSubscription$ = this.authService.getAuth$().subscribe((auth) => {
|
this.authSubscription$ = this.authService.getAuth$().subscribe((auth) => {
|
||||||
this.auth = auth;
|
this.auth = auth;
|
||||||
this.estimate = null;
|
this.estimate = null;
|
||||||
|
this.error = null;
|
||||||
this.moveToStep('summary');
|
this.moveToStep('summary');
|
||||||
});
|
});
|
||||||
this.authService.refreshAuth$().subscribe();
|
this.authService.refreshAuth$().subscribe();
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="td-width field-label" i18n="transaction.accelerated-by-hashrate|Accelerated to hashrate">Accelerated by</td>
|
<td class="td-width field-label" i18n="transaction.accelerated-by-hashrate|Accelerated to hashrate">Accelerated by</td>
|
||||||
<td class="field-value" *ngIf="acceleratedByPercentage">
|
<td class="field-value" *ngIf="acceleratedByPercentage">
|
||||||
{{ acceleratedByPercentage }} <span class="symbol hashrate-label">of hashrate</span>
|
<ng-container i18n="accelerator.x-of-hash-rate">{{ acceleratedByPercentage }} <span class="symbol hashrate-label">of hashrate</span></ng-container>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -75,7 +75,7 @@ export class BlockFeesSubsidyGraphComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.seoService.setTitle($localize`:@@mining.block-fees-subsidy:Block Fees Vs Subsidy`);
|
this.seoService.setTitle($localize`:@@41545303ec98792b738d6237adbd1f3b54a22196:Block Fees Vs Subsidy`);
|
||||||
this.seoService.setDescription($localize`:@@meta.description.bitcoin.graphs.block-fees-subsidy:See the mining fees earned per Bitcoin block compared to the Bitcoin block subsidy, visualized in BTC and USD over time.`);
|
this.seoService.setDescription($localize`:@@meta.description.bitcoin.graphs.block-fees-subsidy:See the mining fees earned per Bitcoin block compared to the Bitcoin block subsidy, visualized in BTC and USD over time.`);
|
||||||
|
|
||||||
this.miningWindowPreference = this.miningService.getDefaultTimespan('24h');
|
this.miningWindowPreference = this.miningService.getDefaultTimespan('24h');
|
||||||
@ -182,9 +182,9 @@ export class BlockFeesSubsidyGraphComponent implements OnInit {
|
|||||||
if (this.displayMode === 'normal') tooltip += `<div style="margin-left: 2px">${formatNumber(data.reduce((acc, val) => acc + val.data, 0), this.locale, '1.0-3')} BTC</div>`;
|
if (this.displayMode === 'normal') tooltip += `<div style="margin-left: 2px">${formatNumber(data.reduce((acc, val) => acc + val.data, 0), this.locale, '1.0-3')} BTC</div>`;
|
||||||
else if (this.displayMode === 'fiat') tooltip += `<div style="margin-left: 2px">${this.fiatCurrencyPipe.transform(data.reduce((acc, val) => acc + val.data, 0), null, 'USD')}</div>`;
|
else if (this.displayMode === 'fiat') tooltip += `<div style="margin-left: 2px">${this.fiatCurrencyPipe.transform(data.reduce((acc, val) => acc + val.data, 0), null, 'USD')}</div>`;
|
||||||
if (['24h', '3d'].includes(this.zoomTimeSpan)) {
|
if (['24h', '3d'].includes(this.zoomTimeSpan)) {
|
||||||
tooltip += `<small>` + $localize`At block <b style="color: white; margin-left: 2px">${data[0].axisValue}` + `</small>`;
|
tooltip += `<small>` + $localize`At block ${'<b style="color: white; margin-left: 2px">' + data[0].axisValue}` + `</small>`;
|
||||||
} else {
|
} else {
|
||||||
tooltip += `<small>` + $localize`Around block <b style="color: white; margin-left: 2px">${data[0].axisValue}` + `</small>`;
|
tooltip += `<small>` + $localize`Around block ${'<b style="color: white; margin-left: 2px">' + data[0].axisValue}` + `</small>`;
|
||||||
}
|
}
|
||||||
return tooltip;
|
return tooltip;
|
||||||
}.bind(this)
|
}.bind(this)
|
||||||
|
@ -60,7 +60,7 @@ export class BlockHealthGraphComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.seoService.setTitle($localize`:@@d7d5fcf50179ad70c938491c517efb82de2c8146:Block Health`);
|
this.seoService.setTitle($localize`:@@b1fa5b210c9670d49a6506f046d4a0c2797fd402:Block Health`);
|
||||||
this.seoService.setDescription($localize`:@@meta.description.bitcoin.graphs.block-health:See Bitcoin block health visualized over time. Block health is a measure of how many expected transactions were included in an actual mined block. Expected transactions are determined using Mempool's re-implementation of Bitcoin Core's transaction selection algorithm.`);
|
this.seoService.setDescription($localize`:@@meta.description.bitcoin.graphs.block-health:See Bitcoin block health visualized over time. Block health is a measure of how many expected transactions were included in an actual mined block. Expected transactions are determined using Mempool's re-implementation of Bitcoin Core's transaction selection algorithm.`);
|
||||||
this.miningWindowPreference = '24h';//this.miningService.getDefaultTimespan('24h');
|
this.miningWindowPreference = '24h';//this.miningService.getDefaultTimespan('24h');
|
||||||
this.radioGroupForm = this.formBuilder.group({ dateSpan: this.miningWindowPreference });
|
this.radioGroupForm = this.formBuilder.group({ dateSpan: this.miningWindowPreference });
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<a class="dropdown-item" routerLinkActive="active" [routerLink]="['/graphs/mining/block-fees' | relativeUrl]"
|
<a class="dropdown-item" routerLinkActive="active" [routerLink]="['/graphs/mining/block-fees' | relativeUrl]"
|
||||||
i18n="mining.block-fees">Block Fees</a>
|
i18n="mining.block-fees">Block Fees</a>
|
||||||
<a class="dropdown-item" routerLinkActive="active" [routerLink]="['/graphs/mining/block-fees-subsidy' | relativeUrl]"
|
<a class="dropdown-item" routerLinkActive="active" [routerLink]="['/graphs/mining/block-fees-subsidy' | relativeUrl]"
|
||||||
i18n="mining.block-fees">Block Fees Vs Subsidy</a>
|
i18n="mining.block-fees-subsidy-subsidy">Block Fees Vs Subsidy</a>
|
||||||
<a class="dropdown-item" routerLinkActive="active" [routerLink]="['/graphs/mining/block-rewards' | relativeUrl]"
|
<a class="dropdown-item" routerLinkActive="active" [routerLink]="['/graphs/mining/block-rewards' | relativeUrl]"
|
||||||
i18n="mining.block-rewards">Block Rewards</a>
|
i18n="mining.block-rewards">Block Rewards</a>
|
||||||
<a class="dropdown-item" routerLinkActive="active"
|
<a class="dropdown-item" routerLinkActive="active"
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<div class="tracker-bar" [class.transitions]="transitionsEnabled">
|
<div class="tracker-bar" [class.transitions]="transitionsEnabled">
|
||||||
<div class="stage {{ stages.waiting.state }}">Sent</div>
|
<div class="stage {{ stages.waiting.state }}" i18n="accelerator.sent-state">Sent</div>
|
||||||
<div class="divider left-{{ stages.waiting.state }} right-{{ stages.pending.state }}"></div>
|
<div class="divider left-{{ stages.waiting.state }} right-{{ stages.pending.state }}"></div>
|
||||||
<div class="stage {{ stages.pending.state }}">Pending</div>
|
<div class="stage {{ stages.pending.state }}" i18n="accelerator.pending-state">Pending</div>
|
||||||
<div class="divider left-{{ stages.pending.state }} right-{{ stages.soon.state }}"></div>
|
<div class="divider left-{{ stages.pending.state }} right-{{ stages.soon.state }}"></div>
|
||||||
<div class="stage {{ stages.soon.state }}">Soon</div>
|
<div class="stage {{ stages.soon.state }}" i18n="accelerator.soon">Soon</div>
|
||||||
<div class="divider left-{{ stages.soon.state }} right-{{ stages.next.state }}"></div>
|
<div class="divider left-{{ stages.soon.state }} right-{{ stages.next.state }}"></div>
|
||||||
<div class="stage {{ stages.next.state }}">Next block</div>
|
<div class="stage {{ stages.next.state }}" i18n="@@bdf0e930eb22431140a2eaeacd809cc5f8ebd38c">Next Block</div>
|
||||||
<div class="divider left-{{ stages.next.state }} right-{{ stages.confirmed.state }}"></div>
|
<div class="divider left-{{ stages.next.state }} right-{{ stages.confirmed.state }}"></div>
|
||||||
<div class="stage {{ stages.confirmed.state }}">Confirmed</div>
|
<div class="stage {{ stages.confirmed.state }}" i18n="transaction.confirmed|Transaction confirmed state">Confirmed</div>
|
||||||
</div>
|
</div>
|
@ -174,7 +174,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="footer-link" [routerLink]="['/tx' | relativeUrl, tx?.txid]">
|
<div class="footer-link" [routerLink]="['/tx' | relativeUrl, tx?.txid]">
|
||||||
<span>See more details <fa-icon [icon]="['fas', 'arrow-alt-circle-right']"></fa-icon></span>
|
<span><ng-container i18n="accelerator.show-more-details">See more details</ng-container> <fa-icon [icon]="['fas', 'arrow-alt-circle-right']"></fa-icon></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,6 +1,6 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { map, Observable, ReplaySubject, switchMap, tap } from 'rxjs';
|
import { catchError, map, Observable, of, ReplaySubject, switchMap, tap } from 'rxjs';
|
||||||
import { ServicesApiServices } from './services-api.service';
|
import { ServicesApiServices } from './services-api.service';
|
||||||
|
|
||||||
export interface IAuth {
|
export interface IAuth {
|
||||||
@ -43,7 +43,8 @@ export class AuthServiceMempool {
|
|||||||
}),
|
}),
|
||||||
map((user) => {
|
map((user) => {
|
||||||
return user;
|
return user;
|
||||||
})
|
}),
|
||||||
|
catchError(() => of(null)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,11 +41,11 @@ const ADDRESS_CHARS: {
|
|||||||
bech32: `(?:`
|
bech32: `(?:`
|
||||||
+ `bc1` // Starts with bc1
|
+ `bc1` // Starts with bc1
|
||||||
+ BECH32_CHARS_LW
|
+ BECH32_CHARS_LW
|
||||||
+ `{20,100}` // As per bech32, 6 char checksum is minimum
|
+ `{6,100}` // As per bech32, 6 char checksum is minimum
|
||||||
+ `|`
|
+ `|`
|
||||||
+ `BC1` // All upper case version
|
+ `BC1` // All upper case version
|
||||||
+ BECH32_CHARS_UP
|
+ BECH32_CHARS_UP
|
||||||
+ `{20,100}`
|
+ `{6,100}`
|
||||||
+ `)`,
|
+ `)`,
|
||||||
},
|
},
|
||||||
testnet: {
|
testnet: {
|
||||||
@ -55,11 +55,11 @@ const ADDRESS_CHARS: {
|
|||||||
bech32: `(?:`
|
bech32: `(?:`
|
||||||
+ `tb1` // Starts with tb1
|
+ `tb1` // Starts with tb1
|
||||||
+ BECH32_CHARS_LW
|
+ BECH32_CHARS_LW
|
||||||
+ `{20,100}` // As per bech32, 6 char checksum is minimum
|
+ `{6,100}` // As per bech32, 6 char checksum is minimum
|
||||||
+ `|`
|
+ `|`
|
||||||
+ `TB1` // All upper case version
|
+ `TB1` // All upper case version
|
||||||
+ BECH32_CHARS_UP
|
+ BECH32_CHARS_UP
|
||||||
+ `{20,100}`
|
+ `{6,100}`
|
||||||
+ `)`,
|
+ `)`,
|
||||||
},
|
},
|
||||||
testnet4: {
|
testnet4: {
|
||||||
@ -69,11 +69,11 @@ const ADDRESS_CHARS: {
|
|||||||
bech32: `(?:`
|
bech32: `(?:`
|
||||||
+ `tb1` // Starts with tb1
|
+ `tb1` // Starts with tb1
|
||||||
+ BECH32_CHARS_LW
|
+ BECH32_CHARS_LW
|
||||||
+ `{20,100}` // As per bech32, 6 char checksum is minimum
|
+ `{6,100}` // As per bech32, 6 char checksum is minimum
|
||||||
+ `|`
|
+ `|`
|
||||||
+ `TB1` // All upper case version
|
+ `TB1` // All upper case version
|
||||||
+ BECH32_CHARS_UP
|
+ BECH32_CHARS_UP
|
||||||
+ `{20,100}`
|
+ `{6,100}`
|
||||||
+ `)`,
|
+ `)`,
|
||||||
},
|
},
|
||||||
signet: {
|
signet: {
|
||||||
@ -83,11 +83,11 @@ const ADDRESS_CHARS: {
|
|||||||
bech32: `(?:`
|
bech32: `(?:`
|
||||||
+ `tb1` // Starts with tb1
|
+ `tb1` // Starts with tb1
|
||||||
+ BECH32_CHARS_LW
|
+ BECH32_CHARS_LW
|
||||||
+ `{20,100}`
|
+ `{6,100}`
|
||||||
+ `|`
|
+ `|`
|
||||||
+ `TB1` // All upper case version
|
+ `TB1` // All upper case version
|
||||||
+ BECH32_CHARS_UP
|
+ BECH32_CHARS_UP
|
||||||
+ `{20,100}`
|
+ `{6,100}`
|
||||||
+ `)`,
|
+ `)`,
|
||||||
},
|
},
|
||||||
liquid: {
|
liquid: {
|
||||||
@ -105,7 +105,7 @@ const ADDRESS_CHARS: {
|
|||||||
+ `lq1`
|
+ `lq1`
|
||||||
+ `)`
|
+ `)`
|
||||||
+ BECH32_CHARS_LW // blech32 and bech32 are the same alphabet and protocol, different checksums.
|
+ BECH32_CHARS_LW // blech32 and bech32 are the same alphabet and protocol, different checksums.
|
||||||
+ `{20,100}`
|
+ `{6,100}`
|
||||||
+ `|`
|
+ `|`
|
||||||
+ `(?:` // Same as above but all upper case
|
+ `(?:` // Same as above but all upper case
|
||||||
+ `EX1`
|
+ `EX1`
|
||||||
@ -113,7 +113,7 @@ const ADDRESS_CHARS: {
|
|||||||
+ `LQ1`
|
+ `LQ1`
|
||||||
+ `)`
|
+ `)`
|
||||||
+ BECH32_CHARS_UP
|
+ BECH32_CHARS_UP
|
||||||
+ `{20,100}`
|
+ `{6,100}`
|
||||||
+ `)`,
|
+ `)`,
|
||||||
},
|
},
|
||||||
liquidtestnet: {
|
liquidtestnet: {
|
||||||
@ -127,7 +127,7 @@ const ADDRESS_CHARS: {
|
|||||||
+ `tlq1` // TODO: does this exist?
|
+ `tlq1` // TODO: does this exist?
|
||||||
+ `)`
|
+ `)`
|
||||||
+ BECH32_CHARS_LW // blech32 and bech32 are the same alphabet and protocol, different checksums.
|
+ BECH32_CHARS_LW // blech32 and bech32 are the same alphabet and protocol, different checksums.
|
||||||
+ `{20,100}`
|
+ `{6,100}`
|
||||||
+ `|`
|
+ `|`
|
||||||
+ `(?:` // Same as above but all upper case
|
+ `(?:` // Same as above but all upper case
|
||||||
+ `TEX1`
|
+ `TEX1`
|
||||||
@ -135,7 +135,7 @@ const ADDRESS_CHARS: {
|
|||||||
+ `TLQ1`
|
+ `TLQ1`
|
||||||
+ `)`
|
+ `)`
|
||||||
+ BECH32_CHARS_UP
|
+ BECH32_CHARS_UP
|
||||||
+ `{20,100}`
|
+ `{6,100}`
|
||||||
+ `)`,
|
+ `)`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
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
@ -558,14 +558,6 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">accelerator.how-much-faster</note>
|
<note priority="1" from="description">accelerator.how-much-faster</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="d5e02d655834140c67217985af30b22b4b831aa8" datatype="html">
|
|
||||||
<source>Your transaction will be prioritized by up to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/><x id="INTERPOLATION" equiv-text="rcentage | number : '1.1-1' }}"/>%<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> of miners.</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
|
||||||
<context context-type="linenumber">76</context>
|
|
||||||
</context-group>
|
|
||||||
<note priority="1" from="description">accelerator.hashrate-percentage-description</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="d1a62bdb732f1efbfdc8af6fbb4349b89015b5e5" datatype="html">
|
<trans-unit id="d1a62bdb732f1efbfdc8af6fbb4349b89015b5e5" datatype="html">
|
||||||
<source>This will reduce your expected waiting time until the first confirmation to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/><x id="START_TAG_APP_TIME" ctype="x-app_time" equiv-text="n" [time]="etaInfo.acceleratedETA" [fastRender]="false" [fixedRender]="true">"/><x id="CLOSE_TAG_APP_TIME" ctype="x-app_time" equiv-text="</strong></s"/><x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</small>"/></source>
|
<source>This will reduce your expected waiting time until the first confirmation to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/><x id="START_TAG_APP_TIME" ctype="x-app_time" equiv-text="n" [time]="etaInfo.acceleratedETA" [fastRender]="false" [fixedRender]="true">"/><x id="CLOSE_TAG_APP_TIME" ctype="x-app_time" equiv-text="</strong></s"/><x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</small>"/></source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -691,6 +683,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">accelerator.available-balance</note>
|
<note priority="1" from="description">accelerator.available-balance</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="a67aec1c4d47cdf3a4442a19e616def78fd77388" datatype="html">
|
||||||
|
<source>Go back</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">259</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">421</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">473</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">go-back</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="7d89e94e98140d07d5c2bb12d6166b8b74506eb0" datatype="html">
|
<trans-unit id="7d89e94e98140d07d5c2bb12d6166b8b74506eb0" datatype="html">
|
||||||
<source>Accelerate your Bitcoin transaction?</source>
|
<source>Accelerate your Bitcoin transaction?</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -699,17 +707,91 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">accelerator.accelerate-your-transaction</note>
|
<note priority="1" from="description">accelerator.accelerate-your-transaction</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="d1a7c51db4237fc7799b1c104283ec5202f03c7d" datatype="html">
|
<trans-unit id="eb70970e7741aca891aa54ff4651b050a60b1690" datatype="html">
|
||||||
<source>Your transaction will be prioritized by up to <x id="INTERPOLATION" equiv-text="{{ etaInfo.hashratePercentage | number : '1.1-1' }}"/>% of miners.</source>
|
<source>Wait</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
<context context-type="linenumber">325</context>
|
<context context-type="linenumber">290</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.wait</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="f6a46cd5ca2087712a145f2c680e2aad5f926eaf" datatype="html">
|
||||||
|
<source>Confirmation expected</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">292</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
<context context-type="linenumber">361</context>
|
<context context-type="linenumber">517</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">accelerator.hashrate-percentage-description</note>
|
<note priority="1" from="description">accelerator.confirmation-expected</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="3f27230dc33770f71a7b0d9249c3c712b116b582" datatype="html">
|
||||||
|
<source>Confirmation expected within several hours</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">295</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.confirmation-expected-within-hours</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="fd1ab7f68416a5ce64f04f588c8b808d7bba9624" datatype="html">
|
||||||
|
<source>For an additional</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">350</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.for-an-additional-cost</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="b0cd496dc7758e691f57213379a47f0a043010ac" datatype="html">
|
||||||
|
<source>Reducing expected confirmation time to <x id="START_TAG_APP_TIME" ctype="x-app_time" equiv-text="<app-time kind="within" [time]="etaInfo.acceleratedETA" [fastRender]="false" [fixedRender]="true">"/><x id="CLOSE_TAG_APP_TIME" ctype="x-app_time" equiv-text="</ng-contain"/></source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">356,357</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.reducing-expected-confirmation-time</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="b62e50ad8bdbb107a2ec978648faf36e9f91c3c1" datatype="html">
|
||||||
|
<source>Payment to mempool.space for acceleration of txid <x id="START_LINK" ctype="x-a" equiv-text="<a [routerLink]="'/tx/' + tx.txid" target="_blank">"/><x id="INTERPOLATION" equiv-text="tr(0, 10) }}"/>..<x id="INTERPOLATION_1" equiv-text="{{ tx.txid.substr(-10) }}"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</p>
|
||||||
|
</d"/></source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">367,368</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">435</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.payment-to-mempool-space</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="65fd4251d8ddfe4017d4d83f8cec6f5a80d89289" datatype="html">
|
||||||
|
<source>Pay</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">383</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">400</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">446</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">550</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">Pay button label</note>
|
||||||
|
<note priority="1" from="meaning">transaction.pay</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="13eacf4307fbadcc4ba552641200cdc36997a62c" datatype="html">
|
||||||
|
<source>Loading invoice...</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">386</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.loading-invoice</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="63f5d0ec23e3cf4abf6d5221107633c90d8d4a15" datatype="html">
|
<trans-unit id="63f5d0ec23e3cf4abf6d5221107633c90d8d4a15" datatype="html">
|
||||||
<source>OR</source>
|
<source>OR</source>
|
||||||
@ -719,6 +801,78 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">or</note>
|
<note priority="1" from="description">or</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="d5380b83d01211f764e7dc17f115cbe2c306793f" datatype="html">
|
||||||
|
<source>Confirm your payment</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">428</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.confirm-your-payment</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="23e85f2bac1f2bf2a36125a7cc9232e47d773bca" datatype="html">
|
||||||
|
<source>Total additional cost</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">444</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.total-additional-cost</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="ada15d0099ccf0a54d598a658d7a5d9f95af8fc6" datatype="html">
|
||||||
|
<source>with</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">448</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.pay-with</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="c427d1fcbff172397bf8f6fb154e3144f099afdc" datatype="html">
|
||||||
|
<source>Loading payment method...</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">462</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.loading-payment-method</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="72ca62832f62c0aeb0c0675d2ac6aa7043ee840d" datatype="html">
|
||||||
|
<source>Confirming your payment</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">480</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.confirming-your-payment</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="8c8cbda9c5ddde6a4898a80aef46199c946c8895" datatype="html">
|
||||||
|
<source>We are processing your payment...</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">490</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.payment-processing</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="ea3197c44781ecca4f2adbf7bff229574f192983" datatype="html">
|
||||||
|
<source>Accelerating your transaction</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">500</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.accelerating-your-transaction</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="2279bfb8531701cc176ff6b266c3fa0df3983bce" datatype="html">
|
||||||
|
<source>Confirming your acceleration with our mining pool partners...</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">507</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.confirming-acceleration-with-miners</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="746506272a06b85cba0efc14907940df4bafdf96" datatype="html">
|
||||||
|
<source>Calculating cost...</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">521</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.calculating-cost</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="484e154f1b26e67760d10baa8dddb2c69ddb1990" datatype="html">
|
<trans-unit id="484e154f1b26e67760d10baa8dddb2c69ddb1990" datatype="html">
|
||||||
<source>customize</source>
|
<source>customize</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -735,6 +889,35 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">accelerator.accelerate-to-x</note>
|
<note priority="1" from="description">accelerator.accelerate-to-x</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
|
||||||
|
<source>Accelerate</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">536</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||||
|
<context context-type="linenumber">139</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||||
|
<context context-type="linenumber">557</context>
|
||||||
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||||
|
<context context-type="linenumber">566</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">Accelerate button label</note>
|
||||||
|
<note priority="1" from="meaning">transaction.accelerate</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="cae178cb66733552da9e3baefc1949a18af63ee0" datatype="html">
|
||||||
|
<source>Your transaction will be prioritized by up to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/><x id="INTERPOLATION" equiv-text="1' }}"/>%<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> of miners.</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/accelerate-checkout/accelerate-checkout.component.html</context>
|
||||||
|
<context context-type="linenumber">560</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.hashrate-percentage-description</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="83b8b9dd1ed416447cf8438460a37b0ddeb2677c" datatype="html">
|
<trans-unit id="83b8b9dd1ed416447cf8438460a37b0ddeb2677c" datatype="html">
|
||||||
<source>sat</source>
|
<source>sat</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -808,6 +991,10 @@
|
|||||||
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
|
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
|
||||||
<context context-type="linenumber">87</context>
|
<context context-type="linenumber">87</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/tracker/tracker-bar.component.html</context>
|
||||||
|
<context context-type="linenumber">8</context>
|
||||||
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="bcf34abc2d9ed8f45a2f65dd464c46694e9a181e" datatype="html">
|
<trans-unit id="bcf34abc2d9ed8f45a2f65dd464c46694e9a181e" datatype="html">
|
||||||
<source>Acceleration Fees</source>
|
<source>Acceleration Fees</source>
|
||||||
@ -1132,6 +1319,10 @@
|
|||||||
<context context-type="sourcefile">src/app/components/acceleration/accelerations-list/accelerations-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/acceleration/accelerations-list/accelerations-list.component.html</context>
|
||||||
<context context-type="linenumber">53</context>
|
<context context-type="linenumber">53</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/tracker/tracker-bar.component.html</context>
|
||||||
|
<context context-type="linenumber">4</context>
|
||||||
|
</context-group>
|
||||||
<note priority="1" from="description">accelerator.pending</note>
|
<note priority="1" from="description">accelerator.pending</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="9362dc86738f282259d3ef3789b7824dbfd19202" datatype="html">
|
<trans-unit id="9362dc86738f282259d3ef3789b7824dbfd19202" datatype="html">
|
||||||
@ -1262,6 +1453,14 @@
|
|||||||
<note priority="1" from="description">Accelerated to hashrate</note>
|
<note priority="1" from="description">Accelerated to hashrate</note>
|
||||||
<note priority="1" from="meaning">transaction.accelerated-by-hashrate</note>
|
<note priority="1" from="meaning">transaction.accelerated-by-hashrate</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="3af3e9a4c4d8135f386b2fc59233884ae8fc57fb" datatype="html">
|
||||||
|
<source><x id="INTERPOLATION" equiv-text="{{ acceleratedByPercentage }}"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="symbol hashrate-label">"/>of hashrate<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/acceleration/active-acceleration-box/active-acceleration-box.component.html</context>
|
||||||
|
<context context-type="linenumber">27</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.x-of-hash-rate</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="3590f5c3ef2810f637316edb8aaa86b8e907f152" datatype="html">
|
<trans-unit id="3590f5c3ef2810f637316edb8aaa86b8e907f152" datatype="html">
|
||||||
<source>pending</source>
|
<source>pending</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -2125,19 +2324,16 @@
|
|||||||
<context context-type="sourcefile">src/app/components/block-fees-subsidy-graph/block-fees-subsidy-graph.component.html</context>
|
<context context-type="sourcefile">src/app/components/block-fees-subsidy-graph/block-fees-subsidy-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/block-fees-subsidy-graph/block-fees-subsidy-graph.component.ts</context>
|
||||||
|
<context context-type="linenumber">78</context>
|
||||||
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context>
|
<context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context>
|
||||||
<context context-type="linenumber">21</context>
|
<context context-type="linenumber">21</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">mining.block-fees-subsidy-subsidy</note>
|
<note priority="1" from="description">mining.block-fees-subsidy-subsidy</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="mining.block-fees-subsidy" datatype="html">
|
|
||||||
<source>Block Fees Vs Subsidy</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/block-fees-subsidy-graph/block-fees-subsidy-graph.component.ts</context>
|
|
||||||
<context context-type="linenumber">78</context>
|
|
||||||
</context-group>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="meta.description.bitcoin.graphs.block-fees-subsidy" datatype="html">
|
<trans-unit id="meta.description.bitcoin.graphs.block-fees-subsidy" datatype="html">
|
||||||
<source>See the mining fees earned per Bitcoin block compared to the Bitcoin block subsidy, visualized in BTC and USD over time.</source>
|
<source>See the mining fees earned per Bitcoin block compared to the Bitcoin block subsidy, visualized in BTC and USD over time.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -2145,15 +2341,15 @@
|
|||||||
<context context-type="linenumber">79</context>
|
<context context-type="linenumber">79</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2189751124546081426" datatype="html">
|
<trans-unit id="8538305450922736186" datatype="html">
|
||||||
<source>At block <b style="color: white; margin-left: 2px"><x id="PH" equiv-text="data[0].axisValue"/></source>
|
<source>At block <x id="PH" equiv-text="'<b style="color: white; margin-left: 2px">' + data[0].axisValue"/></source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/block-fees-subsidy-graph/block-fees-subsidy-graph.component.ts</context>
|
<context context-type="sourcefile">src/app/components/block-fees-subsidy-graph/block-fees-subsidy-graph.component.ts</context>
|
||||||
<context context-type="linenumber">185</context>
|
<context context-type="linenumber">185</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4367945322724572611" datatype="html">
|
<trans-unit id="8807945662832318286" datatype="html">
|
||||||
<source>Around block <b style="color: white; margin-left: 2px"><x id="PH" equiv-text="data[0].axisValue"/></source>
|
<source>Around block <x id="PH" equiv-text="'<b style="color: white; margin-left: 2px">' + data[0].axisValue"/></source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/block-fees-subsidy-graph/block-fees-subsidy-graph.component.ts</context>
|
<context context-type="sourcefile">src/app/components/block-fees-subsidy-graph/block-fees-subsidy-graph.component.ts</context>
|
||||||
<context context-type="linenumber">187</context>
|
<context context-type="linenumber">187</context>
|
||||||
@ -2245,19 +2441,16 @@
|
|||||||
<context context-type="sourcefile">src/app/components/block-health-graph/block-health-graph.component.html</context>
|
<context context-type="sourcefile">src/app/components/block-health-graph/block-health-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/block-health-graph/block-health-graph.component.ts</context>
|
||||||
|
<context context-type="linenumber">63</context>
|
||||||
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context>
|
<context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context>
|
||||||
<context context-type="linenumber">27</context>
|
<context context-type="linenumber">27</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">mining.blocks-health</note>
|
<note priority="1" from="description">mining.blocks-health</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="d7d5fcf50179ad70c938491c517efb82de2c8146" datatype="html">
|
|
||||||
<source>Block 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">63</context>
|
|
||||||
</context-group>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="meta.description.bitcoin.graphs.block-health" datatype="html">
|
<trans-unit id="meta.description.bitcoin.graphs.block-health" datatype="html">
|
||||||
<source>See Bitcoin block health visualized over time. Block health is a measure of how many expected transactions were included in an actual mined block. Expected transactions are determined using Mempool's re-implementation of Bitcoin Core's transaction selection algorithm.</source>
|
<source>See Bitcoin block health visualized over time. Block health is a measure of how many expected transactions were included in an actual mined block. Expected transactions are determined using Mempool's re-implementation of Bitcoin Core's transaction selection algorithm.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -2422,6 +2615,10 @@
|
|||||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||||
<context context-type="linenumber">32</context>
|
<context context-type="linenumber">32</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/tracker/tracker-bar.component.html</context>
|
||||||
|
<context context-type="linenumber">10</context>
|
||||||
|
</context-group>
|
||||||
<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">468</context>
|
<context context-type="linenumber">468</context>
|
||||||
@ -6172,6 +6369,22 @@
|
|||||||
<context context-type="linenumber">269</context>
|
<context context-type="linenumber">269</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="cef1d79eace5eb4d2243fad36730e3e65c757bee" datatype="html">
|
||||||
|
<source>Sent</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/tracker/tracker-bar.component.html</context>
|
||||||
|
<context context-type="linenumber">2</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.sent-state</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="6092bb2a5d8d9aca468a0007bc1af1c21e8f454c" datatype="html">
|
||||||
|
<source>Soon</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/tracker/tracker-bar.component.html</context>
|
||||||
|
<context context-type="linenumber">6</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.soon</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="0094b97dd052620710f173e7aedf6807a1eba1f5" datatype="html">
|
<trans-unit id="0094b97dd052620710f173e7aedf6807a1eba1f5" datatype="html">
|
||||||
<source>This transaction has been replaced by:</source>
|
<source>This transaction has been replaced by:</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -6283,6 +6496,14 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">tracker.explain.replaced</note>
|
<note priority="1" from="description">tracker.explain.replaced</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2514309d0421b09a70cf9bf5d59bcc1b82dbec31" datatype="html">
|
||||||
|
<source>See more details</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/tracker/tracker.component.html</context>
|
||||||
|
<context context-type="linenumber">177</context>
|
||||||
|
</context-group>
|
||||||
|
<note priority="1" from="description">accelerator.show-more-details</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="bisq.transaction.browser-title" datatype="html">
|
<trans-unit id="bisq.transaction.browser-title" datatype="html">
|
||||||
<source>Transaction: <x id="INTERPOLATION" equiv-text="this.txId"/></source>
|
<source>Transaction: <x id="INTERPOLATION" equiv-text="this.txId"/></source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
@ -6355,23 +6576,6 @@
|
|||||||
<note priority="1" from="description">Transaction Ancestor</note>
|
<note priority="1" from="description">Transaction Ancestor</note>
|
||||||
<note priority="1" from="meaning">transaction.ancestor</note>
|
<note priority="1" from="meaning">transaction.ancestor</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
|
|
||||||
<source>Accelerate</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
|
||||||
<context context-type="linenumber">139</context>
|
|
||||||
</context-group>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
|
||||||
<context context-type="linenumber">557</context>
|
|
||||||
</context-group>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
|
||||||
<context context-type="linenumber">566</context>
|
|
||||||
</context-group>
|
|
||||||
<note priority="1" from="description">Accelerate button label</note>
|
|
||||||
<note priority="1" from="meaning">transaction.accelerate</note>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="ec972116b4da9e2c5bc0e6e6586061d60cd13e56" datatype="html">
|
<trans-unit id="ec972116b4da9e2c5bc0e6e6586061d60cd13e56" datatype="html">
|
||||||
<source>Hide accelerator</source>
|
<source>Hide accelerator</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user