Compare commits
89 Commits
v3.0.0-dev
...
orangesurf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b640202c63 | ||
|
|
b3258b0be7 | ||
|
|
4169e1053f | ||
|
|
a46e779d0c | ||
|
|
51102004bb | ||
|
|
08e9142d57 | ||
|
|
b7c4cd43fc | ||
|
|
08a35b85a8 | ||
|
|
51a28b2e01 | ||
|
|
966adf5963 | ||
|
|
ae7b17c4fd | ||
|
|
5b4bc9fe19 | ||
|
|
89eb7ec90b | ||
|
|
a646c5f22f | ||
|
|
c345f2164b | ||
|
|
9791ee018d | ||
|
|
7c83b85e3e | ||
|
|
63942af720 | ||
|
|
4da5910e0b | ||
|
|
025788e78c | ||
|
|
88a9524064 | ||
|
|
c216e849e6 | ||
|
|
c86768edc9 | ||
|
|
4283d30ce0 | ||
|
|
e2eeaebfc7 | ||
|
|
90d87aaaca | ||
|
|
b2e9275ad9 | ||
|
|
181e816c1a | ||
|
|
758ca4e93a | ||
|
|
a33f915c7a | ||
|
|
75c6d006ff | ||
|
|
1fe983a299 | ||
|
|
cd8e3e2604 | ||
|
|
dfc4309d9e | ||
|
|
0a70273456 | ||
|
|
62c9a88235 | ||
|
|
851e07b50b | ||
|
|
e1bbec074b | ||
|
|
9fcafeeeb0 | ||
|
|
e986cfd30b | ||
|
|
2584a1f2b0 | ||
|
|
1c92394563 | ||
|
|
36398ca57a | ||
|
|
6b978f9262 | ||
|
|
12cf130c00 | ||
|
|
ba933a81c3 | ||
|
|
7de7081d67 | ||
|
|
6b933c202f | ||
|
|
f1525b7df5 | ||
|
|
62c4af1a0c | ||
|
|
4ac98bc483 | ||
|
|
ed07daebca | ||
|
|
f8bbf7783c | ||
|
|
fac2fab16a | ||
|
|
76de4e34d8 | ||
|
|
6109f25aa9 | ||
|
|
86303175e9 | ||
|
|
a670131f40 | ||
|
|
c5ce3167f3 | ||
|
|
9913254a5c | ||
|
|
fbb4ba39c2 | ||
|
|
22bf0fe928 | ||
|
|
3b30765070 | ||
|
|
63fde7d0b6 | ||
|
|
cf338970bf | ||
|
|
08e046ea2a | ||
|
|
5697710c23 | ||
|
|
b9e050e24b | ||
|
|
ff819673e5 | ||
|
|
2e2801a4ab | ||
|
|
f52b17ca7a | ||
|
|
3d25235705 | ||
|
|
2cbc6783a4 | ||
|
|
406bf5d3b7 | ||
|
|
f5bf883de9 | ||
|
|
c06cade1ca | ||
|
|
c23a872887 | ||
|
|
0b449347c1 | ||
|
|
d2da81e039 | ||
|
|
66d88abdc5 | ||
|
|
85c9c79699 | ||
|
|
652100f774 | ||
|
|
0f04f751e1 | ||
|
|
643402c046 | ||
|
|
3103ef15e5 | ||
|
|
f57436f511 | ||
|
|
1eb425897e | ||
|
|
9d0bfdfa88 | ||
|
|
d630e7217a |
@@ -80,7 +80,13 @@ class ChannelsApi {
|
||||
|
||||
public async $searchChannelsById(search: string): Promise<any[]> {
|
||||
try {
|
||||
const searchStripped = search.replace(/[^0-9x]/g, '') + '%';
|
||||
// restrict search to valid id/short_id prefix formats
|
||||
let searchStripped = search.match(/[0-9]+[0-9x]*/)?.[0] || '';
|
||||
if (!searchStripped.length) {
|
||||
return [];
|
||||
}
|
||||
// add wildcard to search by prefix
|
||||
searchStripped += '%';
|
||||
const query = `SELECT id, short_id, capacity, status FROM channels WHERE id LIKE ? OR short_id LIKE ? LIMIT 10`;
|
||||
const [rows]: any = await DB.query(query, [searchStripped, searchStripped]);
|
||||
return rows;
|
||||
|
||||
@@ -15,11 +15,12 @@ class FeeApi {
|
||||
constructor() { }
|
||||
|
||||
defaultFee = Common.isLiquid() ? 0.1 : 1;
|
||||
minimumIncrement = Common.isLiquid() ? 0.1 : 1;
|
||||
|
||||
public getRecommendedFee(): RecommendedFees {
|
||||
const pBlocks = projectedBlocks.getMempoolBlocks();
|
||||
const mPool = mempool.getMempoolInfo();
|
||||
const minimumFee = Math.ceil(mPool.mempoolminfee * 100000);
|
||||
const minimumFee = this.roundUpToNearest(mPool.mempoolminfee * 100000, this.minimumIncrement);
|
||||
const defaultMinFee = Math.max(minimumFee, this.defaultFee);
|
||||
|
||||
if (!pBlocks.length) {
|
||||
@@ -58,7 +59,11 @@ class FeeApi {
|
||||
const multiplier = (pBlock.blockVSize - 500000) / 500000;
|
||||
return Math.max(Math.round(useFee * multiplier), this.defaultFee);
|
||||
}
|
||||
return Math.ceil(useFee);
|
||||
return this.roundUpToNearest(useFee, this.minimumIncrement);
|
||||
}
|
||||
|
||||
private roundUpToNearest(value: number, nearest: number): number {
|
||||
return Math.ceil(value / nearest) * nearest;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import loadingIndicators from './loading-indicators';
|
||||
import bitcoinClient from './bitcoin/bitcoin-client';
|
||||
import bitcoinSecondClient from './bitcoin/bitcoin-second-client';
|
||||
import rbfCache from './rbf-cache';
|
||||
import accelerationApi, { Acceleration } from './services/acceleration';
|
||||
import { Acceleration } from './services/acceleration';
|
||||
import redisCache from './redis-cache';
|
||||
|
||||
class Mempool {
|
||||
@@ -18,7 +18,7 @@ class Mempool {
|
||||
private mempoolCache: { [txId: string]: MempoolTransactionExtended } = {};
|
||||
private spendMap = new Map<string, MempoolTransactionExtended>();
|
||||
private mempoolInfo: IBitcoinApi.MempoolInfo = { loaded: false, size: 0, bytes: 0, usage: 0, total_fee: 0,
|
||||
maxmempool: 300000000, mempoolminfee: 0.00001000, minrelaytxfee: 0.00001000 };
|
||||
maxmempool: 300000000, mempoolminfee: Common.isLiquid() ? 0.00000100 : 0.00001000, minrelaytxfee: Common.isLiquid() ? 0.00000100 : 0.00001000 };
|
||||
private mempoolChangedCallback: ((newMempool: {[txId: string]: MempoolTransactionExtended; }, newTransactions: MempoolTransactionExtended[],
|
||||
deletedTransactions: MempoolTransactionExtended[], accelerationDelta: string[]) => void) | undefined;
|
||||
private $asyncMempoolChangedCallback: ((newMempool: {[txId: string]: MempoolTransactionExtended; }, mempoolSize: number, newTransactions: MempoolTransactionExtended[],
|
||||
@@ -185,7 +185,7 @@ class Mempool {
|
||||
return txTimes;
|
||||
}
|
||||
|
||||
public async $updateMempool(transactions: string[], pollRate: number): Promise<void> {
|
||||
public async $updateMempool(transactions: string[], accelerations: Acceleration[] | null, pollRate: number): Promise<void> {
|
||||
logger.debug(`Updating mempool...`);
|
||||
|
||||
// warn if this run stalls the main loop for more than 2 minutes
|
||||
@@ -330,7 +330,7 @@ class Mempool {
|
||||
const newTransactionsStripped = newTransactions.map((tx) => Common.stripTransaction(tx));
|
||||
this.latestTransactions = newTransactionsStripped.concat(this.latestTransactions).slice(0, 6);
|
||||
|
||||
const accelerationDelta = await this.$updateAccelerations();
|
||||
const accelerationDelta = accelerations != null ? await this.$updateAccelerations(accelerations) : [];
|
||||
if (accelerationDelta.length) {
|
||||
hasChange = true;
|
||||
}
|
||||
@@ -370,14 +370,12 @@ class Mempool {
|
||||
return this.accelerations;
|
||||
}
|
||||
|
||||
public async $updateAccelerations(): Promise<string[]> {
|
||||
public $updateAccelerations(newAccelerations: Acceleration[]): string[] {
|
||||
if (!config.MEMPOOL_SERVICES.ACCELERATIONS) {
|
||||
return [];
|
||||
}
|
||||
|
||||
try {
|
||||
const newAccelerations = await accelerationApi.$fetchAccelerations();
|
||||
|
||||
const changed: string[] = [];
|
||||
|
||||
const newAccelerationMap: { [txid: string]: Acceleration } = {};
|
||||
|
||||
@@ -15,6 +15,13 @@ import bitcoinApi from '../bitcoin/bitcoin-api-factory';
|
||||
import { IEsploraApi } from '../bitcoin/esplora-api.interface';
|
||||
import database from '../../database';
|
||||
|
||||
interface DifficultyBlock {
|
||||
timestamp: number,
|
||||
height: number,
|
||||
bits: number,
|
||||
difficulty: number,
|
||||
}
|
||||
|
||||
class Mining {
|
||||
private blocksPriceIndexingRunning = false;
|
||||
public lastHashrateIndexingDate: number | null = null;
|
||||
@@ -421,6 +428,7 @@ class Mining {
|
||||
indexedHeights[height] = true;
|
||||
}
|
||||
|
||||
// gets {time, height, difficulty, bits} of blocks in ascending order of height
|
||||
const blocks: any = await BlocksRepository.$getBlocksDifficulty();
|
||||
const genesisBlock: IEsploraApi.Block = await bitcoinApi.$getBlock(await bitcoinApi.$getBlockHash(0));
|
||||
let currentDifficulty = genesisBlock.difficulty;
|
||||
@@ -436,41 +444,45 @@ class Mining {
|
||||
});
|
||||
}
|
||||
|
||||
const oldestConsecutiveBlock = await BlocksRepository.$getOldestConsecutiveBlock();
|
||||
if (config.MEMPOOL.INDEXING_BLOCKS_AMOUNT !== -1) {
|
||||
currentBits = oldestConsecutiveBlock.bits;
|
||||
currentDifficulty = oldestConsecutiveBlock.difficulty;
|
||||
if (!blocks?.length) {
|
||||
// no blocks in database yet
|
||||
return;
|
||||
}
|
||||
|
||||
const oldestConsecutiveBlock = this.getOldestConsecutiveBlock(blocks);
|
||||
|
||||
currentBits = oldestConsecutiveBlock.bits;
|
||||
currentDifficulty = oldestConsecutiveBlock.difficulty;
|
||||
|
||||
let totalBlockChecked = 0;
|
||||
let timer = new Date().getTime() / 1000;
|
||||
|
||||
for (const block of blocks) {
|
||||
// skip until the first block after the oldest consecutive block
|
||||
if (block.height <= oldestConsecutiveBlock.height) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// difficulty has changed between two consecutive blocks!
|
||||
if (block.bits !== currentBits) {
|
||||
if (indexedHeights[block.height] === true) { // Already indexed
|
||||
if (block.height >= oldestConsecutiveBlock.height) {
|
||||
currentDifficulty = block.difficulty;
|
||||
currentBits = block.bits;
|
||||
}
|
||||
continue;
|
||||
// skip if already indexed
|
||||
if (indexedHeights[block.height] !== true) {
|
||||
let adjustment = block.difficulty / currentDifficulty;
|
||||
adjustment = Math.round(adjustment * 1000000) / 1000000; // Remove float point noise
|
||||
|
||||
await DifficultyAdjustmentsRepository.$saveAdjustments({
|
||||
time: block.time,
|
||||
height: block.height,
|
||||
difficulty: block.difficulty,
|
||||
adjustment: adjustment,
|
||||
});
|
||||
|
||||
totalIndexed++;
|
||||
}
|
||||
|
||||
let adjustment = block.difficulty / currentDifficulty;
|
||||
adjustment = Math.round(adjustment * 1000000) / 1000000; // Remove float point noise
|
||||
|
||||
await DifficultyAdjustmentsRepository.$saveAdjustments({
|
||||
time: block.time,
|
||||
height: block.height,
|
||||
difficulty: block.difficulty,
|
||||
adjustment: adjustment,
|
||||
});
|
||||
|
||||
totalIndexed++;
|
||||
if (block.height >= oldestConsecutiveBlock.height) {
|
||||
currentDifficulty = block.difficulty;
|
||||
currentBits = block.bits;
|
||||
}
|
||||
}
|
||||
// update the current difficulty
|
||||
currentDifficulty = block.difficulty;
|
||||
currentBits = block.bits;
|
||||
}
|
||||
|
||||
totalBlockChecked++;
|
||||
const elapsedSeconds = Math.max(1, Math.round((new Date().getTime() / 1000) - timer));
|
||||
@@ -633,6 +645,17 @@ class Mining {
|
||||
default: return 86400 * scale;
|
||||
}
|
||||
}
|
||||
|
||||
// Finds the oldest block in a consecutive chain back from the tip
|
||||
// assumes `blocks` is sorted in ascending height order
|
||||
private getOldestConsecutiveBlock(blocks: DifficultyBlock[]): DifficultyBlock {
|
||||
for (let i = blocks.length - 1; i > 0; i--) {
|
||||
if ((blocks[i].height - blocks[i - 1].height) > 1) {
|
||||
return blocks[i];
|
||||
}
|
||||
}
|
||||
return blocks[0];
|
||||
}
|
||||
}
|
||||
|
||||
export default new Mining();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { query } from '../../utils/axios-query';
|
||||
import config from '../../config';
|
||||
import logger from '../../logger';
|
||||
import { BlockExtended, PoolTag } from '../../mempool.interfaces';
|
||||
import axios from 'axios';
|
||||
|
||||
export interface Acceleration {
|
||||
txid: string,
|
||||
@@ -9,10 +10,15 @@ export interface Acceleration {
|
||||
}
|
||||
|
||||
class AccelerationApi {
|
||||
public async $fetchAccelerations(): Promise<Acceleration[]> {
|
||||
public async $fetchAccelerations(): Promise<Acceleration[] | null> {
|
||||
if (config.MEMPOOL_SERVICES.ACCELERATIONS) {
|
||||
const response = await query(`${config.MEMPOOL_SERVICES.API}/accelerator/accelerations`);
|
||||
return (response as Acceleration[]) || [];
|
||||
try {
|
||||
const response = await axios.get(`${config.MEMPOOL_SERVICES.API}/accelerator/accelerations`, { responseType: 'json', timeout: 10000 });
|
||||
return response.data as Acceleration[];
|
||||
} catch (e) {
|
||||
logger.warn('Failed to fetch current accelerations from the mempool services backend: ' + (e instanceof Error ? e.message : e));
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
|
||||
@@ -94,9 +94,13 @@ class WebsocketHandler {
|
||||
throw new Error('WebSocket.Server is not set');
|
||||
}
|
||||
|
||||
this.wss.on('connection', (client: WebSocket) => {
|
||||
this.wss.on('connection', (client: WebSocket, req) => {
|
||||
this.numConnected++;
|
||||
client.on('error', logger.info);
|
||||
client['remoteAddress'] = req.headers['x-forwarded-for'] || req.socket?.remoteAddress || 'unknown';
|
||||
client.on('error', (e) => {
|
||||
logger.info(`websocket client error from ${client['remoteAddress']}: ` + (e instanceof Error ? e.message : e));
|
||||
client.close();
|
||||
});
|
||||
client.on('close', () => {
|
||||
this.numDisconnected++;
|
||||
});
|
||||
@@ -282,7 +286,8 @@ class WebsocketHandler {
|
||||
client.send(serializedResponse);
|
||||
}
|
||||
} catch (e) {
|
||||
logger.debug('Error parsing websocket message: ' + (e instanceof Error ? e.message : e));
|
||||
logger.debug(`Error parsing websocket message from ${client['remoteAddress']}: ` + (e instanceof Error ? e.message : e));
|
||||
client.close();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -43,6 +43,7 @@ import { AxiosError } from 'axios';
|
||||
import v8 from 'v8';
|
||||
import { formatBytes, getBytesUnit } from './utils/format';
|
||||
import redisCache from './api/redis-cache';
|
||||
import accelerationApi from './api/services/acceleration';
|
||||
|
||||
class Server {
|
||||
private wss: WebSocket.Server | undefined;
|
||||
@@ -205,10 +206,11 @@ class Server {
|
||||
}
|
||||
}
|
||||
const newMempool = await bitcoinApi.$getRawMempool();
|
||||
const newAccelerations = await accelerationApi.$fetchAccelerations();
|
||||
const numHandledBlocks = await blocks.$updateBlocks();
|
||||
const pollRate = config.MEMPOOL.POLL_RATE_MS * (indexer.indexerIsRunning() ? 10 : 1);
|
||||
if (numHandledBlocks === 0) {
|
||||
await memPool.$updateMempool(newMempool, pollRate);
|
||||
await memPool.$updateMempool(newMempool, newAccelerations, pollRate);
|
||||
}
|
||||
indexer.$run();
|
||||
priceUpdater.$run();
|
||||
|
||||
@@ -541,7 +541,7 @@ class BlocksRepository {
|
||||
*/
|
||||
public async $getBlocksDifficulty(): Promise<object[]> {
|
||||
try {
|
||||
const [rows]: any[] = await DB.query(`SELECT UNIX_TIMESTAMP(blockTimestamp) as time, height, difficulty, bits FROM blocks`);
|
||||
const [rows]: any[] = await DB.query(`SELECT UNIX_TIMESTAMP(blockTimestamp) as time, height, difficulty, bits FROM blocks ORDER BY height ASC`);
|
||||
return rows;
|
||||
} catch (e) {
|
||||
logger.err('Cannot get blocks difficulty list from the db. Reason: ' + (e instanceof Error ? e.message : e));
|
||||
|
||||
1308
frontend/package-lock.json
generated
1308
frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -74,9 +74,9 @@
|
||||
"@angular/platform-server": "^16.2.2",
|
||||
"@angular/router": "^16.2.2",
|
||||
"@fortawesome/angular-fontawesome": "~0.13.0",
|
||||
"@fortawesome/fontawesome-common-types": "~6.4.0",
|
||||
"@fortawesome/fontawesome-svg-core": "~6.4.0",
|
||||
"@fortawesome/free-solid-svg-icons": "~6.4.0",
|
||||
"@fortawesome/fontawesome-common-types": "~6.5.1",
|
||||
"@fortawesome/fontawesome-svg-core": "~6.5.1",
|
||||
"@fortawesome/free-solid-svg-icons": "~6.5.1",
|
||||
"@mempool/mempool.js": "2.3.0",
|
||||
"@ng-bootstrap/ng-bootstrap": "^15.1.0",
|
||||
"@types/qrcode": "~1.5.0",
|
||||
@@ -90,7 +90,7 @@
|
||||
"ngx-infinite-scroll": "^16.0.0",
|
||||
"qrcode": "1.5.1",
|
||||
"rxjs": "~7.8.1",
|
||||
"tinyify": "^4.0.0",
|
||||
"tinyify": "^3.1.0",
|
||||
"tlite": "^0.1.9",
|
||||
"tslib": "~2.6.0",
|
||||
"zone.js": "~0.13.1"
|
||||
|
||||
@@ -225,7 +225,7 @@ const witnessSize = (vin: Vin) => vin.witness ? vin.witness.reduce((S, w) => S +
|
||||
const scriptSigSize = (vin: Vin) => vin.scriptsig ? vin.scriptsig.length / 2 : 0;
|
||||
|
||||
// Power of ten wrapper
|
||||
export function selectPowerOfTen(val: number): { divider: number, unit: string } {
|
||||
export function selectPowerOfTen(val: number, multiplier = 1): { divider: number, unit: string } {
|
||||
const powerOfTen = {
|
||||
exa: Math.pow(10, 18),
|
||||
peta: Math.pow(10, 15),
|
||||
@@ -236,17 +236,17 @@ export function selectPowerOfTen(val: number): { divider: number, unit: string }
|
||||
};
|
||||
|
||||
let selectedPowerOfTen: { divider: number, unit: string };
|
||||
if (val < powerOfTen.kilo) {
|
||||
if (val < powerOfTen.kilo * multiplier) {
|
||||
selectedPowerOfTen = { divider: 1, unit: '' }; // no scaling
|
||||
} else if (val < powerOfTen.mega) {
|
||||
} else if (val < powerOfTen.mega * multiplier) {
|
||||
selectedPowerOfTen = { divider: powerOfTen.kilo, unit: 'k' };
|
||||
} else if (val < powerOfTen.giga) {
|
||||
} else if (val < powerOfTen.giga * multiplier) {
|
||||
selectedPowerOfTen = { divider: powerOfTen.mega, unit: 'M' };
|
||||
} else if (val < powerOfTen.tera) {
|
||||
} else if (val < powerOfTen.tera * multiplier) {
|
||||
selectedPowerOfTen = { divider: powerOfTen.giga, unit: 'G' };
|
||||
} else if (val < powerOfTen.peta) {
|
||||
} else if (val < powerOfTen.peta * multiplier) {
|
||||
selectedPowerOfTen = { divider: powerOfTen.tera, unit: 'T' };
|
||||
} else if (val < powerOfTen.exa) {
|
||||
} else if (val < powerOfTen.exa * multiplier) {
|
||||
selectedPowerOfTen = { divider: powerOfTen.peta, unit: 'P' };
|
||||
} else {
|
||||
selectedPowerOfTen = { divider: powerOfTen.exa, unit: 'E' };
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<div id="become-sponsor-container">
|
||||
<div class="become-sponsor community">
|
||||
<p style="font-weight: 700; font-size: 18px;">If you're an individual...</p>
|
||||
<a href="https://mempool.space/sponsor" class="btn" style="background-color: rgba(152, 88, 255, 0.75); box-shadow: 0px 0px 50px 5px rgba(152, 88, 255, 0.75)" i18n="about.community-sponsor-button" (click)="onSponsorClick($event)">Become a Community Sponsor</a>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> Exclusive swag</p>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> Your avatar on the About page</p>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> And more coming soon :)</p>
|
||||
</div>
|
||||
<div class="become-sponsor enterprise">
|
||||
<p style="font-weight: 700; font-size: 18px;">If you're a business...</p>
|
||||
<a href="https://mempool.space/enterprise" class="btn" style="background-color: rgba(152, 88, 255, 0.75); box-shadow: 0px 0px 50px 5px rgba(152, 88, 255, 0.75)" i18n="about.enterprise-sponsor-button" (click)="onEnterpriseClick($event)">Become an Enterprise Sponsor</a>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> Increased API limits</p>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> Co-branded instance</p>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> 99% service-level agreement</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,45 @@
|
||||
#become-sponsor-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
margin: 68px auto;
|
||||
}
|
||||
|
||||
.become-sponsor {
|
||||
background-color: #1d1f31;
|
||||
border-radius: 16px;
|
||||
padding: 12px 20px;
|
||||
width: 400px;
|
||||
padding: 40px 20px;
|
||||
}
|
||||
|
||||
.become-sponsor a {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#become-sponsor-container .btn {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
#become-sponsor-container .ng-fa-icon {
|
||||
color: #2ecc71;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#become-sponsor-container .sponsor-feature {
|
||||
text-align: left;
|
||||
width: 250px;
|
||||
margin: 12px auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
@media (max-width: 992px) {
|
||||
|
||||
#become-sponsor-container {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { EnterpriseService } from '../../services/enterprise.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-about-sponsors',
|
||||
templateUrl: './about-sponsors.component.html',
|
||||
styleUrls: ['./about-sponsors.component.scss'],
|
||||
})
|
||||
export class AboutSponsorsComponent {
|
||||
constructor(private enterpriseService: EnterpriseService) {
|
||||
}
|
||||
|
||||
onSponsorClick(e): boolean {
|
||||
this.enterpriseService.goal(5);
|
||||
return true;
|
||||
}
|
||||
|
||||
onEnterpriseClick(e): boolean {
|
||||
this.enterpriseService.goal(6);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -33,22 +33,7 @@
|
||||
</video>
|
||||
|
||||
<ng-container *ngIf="officialMempoolSpace">
|
||||
<div id="become-sponsor-container">
|
||||
<div class="become-sponsor community">
|
||||
<p style="font-weight: 700; font-size: 18px;">If you're an individual...</p>
|
||||
<a href="https://mempool.space/sponsor" class="btn" style="background-color: rgba(152, 88, 255, 0.75); box-shadow: 0px 0px 50px 5px rgba(152, 88, 255, 0.75)" i18n="about.community-sponsor-button">Become a Community Sponsor</a>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> Exclusive swag</p>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> Your avatar on the About page</p>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> And more coming soon :)</p>
|
||||
</div>
|
||||
<div class="become-sponsor enterprise">
|
||||
<p style="font-weight: 700; font-size: 18px;">If you're a business...</p>
|
||||
<a href="https://mempool.space/enterprise" class="btn" style="background-color: rgba(152, 88, 255, 0.75); box-shadow: 0px 0px 50px 5px rgba(152, 88, 255, 0.75)" i18n="about.enterprise-sponsor-button">Become an Enterprise Sponsor</a>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> Increased API limits</p>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> Co-branded instance</p>
|
||||
<p class="sponsor-feature"><fa-icon [icon]="['fas', 'check']"></fa-icon> 99% service-level agreement</p>
|
||||
</div>
|
||||
</div>
|
||||
<app-about-sponsors></app-about-sponsors>
|
||||
</ng-container>
|
||||
|
||||
<div class="enterprise-sponsor" id="enterprise-sponsors">
|
||||
@@ -197,7 +182,7 @@
|
||||
</div>
|
||||
|
||||
<ng-container *ngIf="officialMempoolSpace">
|
||||
<div *ngIf="profiles$ | async as profiles" id="community-sponsors">
|
||||
<div *ngIf="profiles$ | async as profiles" id="community-sponsors-anchor">
|
||||
<div class="community-sponsor" style="margin-bottom: 68px" *ngIf="profiles.whales.length > 0">
|
||||
<h3 i18n="about.sponsors.withHeart">Whale Sponsors</h3>
|
||||
<div class="wrapper">
|
||||
|
||||
@@ -246,49 +246,3 @@
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
#become-sponsor-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
margin: 68px auto;
|
||||
}
|
||||
|
||||
.become-sponsor {
|
||||
background-color: #1d1f31;
|
||||
border-radius: 16px;
|
||||
padding: 12px 20px;
|
||||
width: 400px;
|
||||
padding: 40px 20px;
|
||||
}
|
||||
|
||||
.become-sponsor a {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#become-sponsor-container .btn {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
#become-sponsor-container .ng-fa-icon {
|
||||
color: #2ecc71;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#become-sponsor-container .sponsor-feature {
|
||||
text-align: left;
|
||||
width: 250px;
|
||||
margin: 12px auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
@media (max-width: 992px) {
|
||||
|
||||
#become-sponsor-container {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import { Router, ActivatedRoute } from '@angular/router';
|
||||
import { map, share, tap } from 'rxjs/operators';
|
||||
import { ITranslators } from '../../interfaces/node-api.interface';
|
||||
import { DOCUMENT } from '@angular/common';
|
||||
import { EnterpriseService } from '../../services/enterprise.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-about',
|
||||
@@ -33,6 +34,7 @@ export class AboutComponent implements OnInit {
|
||||
private websocketService: WebsocketService,
|
||||
private seoService: SeoService,
|
||||
public stateService: StateService,
|
||||
private enterpriseService: EnterpriseService,
|
||||
private apiService: ApiService,
|
||||
private router: Router,
|
||||
private route: ActivatedRoute,
|
||||
@@ -47,8 +49,13 @@ export class AboutComponent implements OnInit {
|
||||
this.websocketService.want(['blocks']);
|
||||
|
||||
this.profiles$ = this.apiService.getAboutPageProfiles$().pipe(
|
||||
tap(() => {
|
||||
this.goToAnchor()
|
||||
tap((profiles: any) => {
|
||||
const scrollToSponsors = this.route.snapshot.fragment === 'community-sponsors';
|
||||
if (scrollToSponsors && !profiles?.whales?.length && !profiles?.chads?.length) {
|
||||
return;
|
||||
} else {
|
||||
this.goToAnchor(scrollToSponsors)
|
||||
}
|
||||
}),
|
||||
share(),
|
||||
)
|
||||
@@ -83,11 +90,19 @@ export class AboutComponent implements OnInit {
|
||||
this.goToAnchor();
|
||||
}
|
||||
|
||||
goToAnchor() {
|
||||
goToAnchor(scrollToSponsor = false) {
|
||||
if (!scrollToSponsor) {
|
||||
return;
|
||||
}
|
||||
setTimeout(() => {
|
||||
if (this.route.snapshot.fragment) {
|
||||
if (this.document.getElementById(this.route.snapshot.fragment)) {
|
||||
this.document.getElementById(this.route.snapshot.fragment).scrollIntoView({behavior: 'smooth'});
|
||||
const el = scrollToSponsor ? this.document.getElementById('community-sponsors-anchor') : this.document.getElementById(this.route.snapshot.fragment);
|
||||
if (el) {
|
||||
if (scrollToSponsor) {
|
||||
el.scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'});
|
||||
} else {
|
||||
el.scrollIntoView({behavior: 'smooth'});
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 1);
|
||||
@@ -108,4 +123,14 @@ export class AboutComponent implements OnInit {
|
||||
unmutePromoVideo(): void {
|
||||
this.promoVideo.nativeElement.muted = false;
|
||||
}
|
||||
|
||||
onSponsorClick(e): boolean {
|
||||
this.enterpriseService.goal(5);
|
||||
return true;
|
||||
}
|
||||
|
||||
onEnterpriseClick(e): boolean {
|
||||
this.enterpriseService.goal(6);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { Routes, RouterModule } from '@angular/router';
|
||||
import { AboutComponent } from './about.component';
|
||||
import { AboutSponsorsComponent } from './about-sponsors.component';
|
||||
import { SharedModule } from '../../shared/shared.module';
|
||||
|
||||
const routes: Routes = [
|
||||
@@ -29,6 +30,10 @@ export class AboutRoutingModule { }
|
||||
],
|
||||
declarations: [
|
||||
AboutComponent,
|
||||
AboutSponsorsComponent,
|
||||
],
|
||||
exports: [
|
||||
AboutSponsorsComponent,
|
||||
]
|
||||
})
|
||||
export class AboutModule { }
|
||||
|
||||
@@ -27,6 +27,11 @@
|
||||
|
||||
<ng-container *ngIf="estimate">
|
||||
<div [class]="{estimateDisabled: error}">
|
||||
|
||||
<div *ngIf="user && !estimate.hasAccess">
|
||||
<div class="alert alert-mempool">You are currently on the waitlist</div>
|
||||
</div>
|
||||
|
||||
<h5>Your transaction</h5>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
@@ -230,7 +235,7 @@
|
||||
|
||||
<div class="row mb-3" *ngIf="isLoggedIn()">
|
||||
<div class="col">
|
||||
<div class="d-flex justify-content-end">
|
||||
<div class="d-flex justify-content-end" *ngIf="user && estimate.hasAccess">
|
||||
<button class="btn btn-sm btn-primary btn-success" style="width: 150px" (click)="accelerate()">Accelerate</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -56,6 +56,7 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
|
||||
userBid = 0;
|
||||
selectFeeRateIndex = 1;
|
||||
isMobile: boolean = window.innerWidth <= 767.98;
|
||||
user: any = undefined;
|
||||
|
||||
maxRateOptions: RateOption[] = [];
|
||||
|
||||
@@ -78,6 +79,8 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.user = this.storageService.getAuth()?.user ?? null;
|
||||
|
||||
this.estimateSubscription = this.apiService.estimate$(this.tx.txid).pipe(
|
||||
tap((response) => {
|
||||
if (response.status === 204) {
|
||||
@@ -93,7 +96,7 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
|
||||
this.estimateSubscription.unsubscribe();
|
||||
}
|
||||
|
||||
if (this.estimate.userBalance <= 0) {
|
||||
if (this.estimate.hasAccess === true && this.estimate.userBalance <= 0) {
|
||||
if (this.isLoggedIn()) {
|
||||
this.error = `not_enough_balance`;
|
||||
this.scrollToPreviewWithTimeout('mempoolError', 'center');
|
||||
|
||||
@@ -69,7 +69,7 @@ export class AddressPreviewComponent implements OnInit, OnDestroy {
|
||||
this.addressString = this.addressString.toLowerCase();
|
||||
}
|
||||
this.seoService.setTitle($localize`:@@address.component.browser-title:Address: ${this.addressString}:INTERPOLATION:`);
|
||||
this.seoService.setDescription($localize`:@@meta.description.bitcoin.address:See mempool transactions, confirmed transactions, balance, and more for ${this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'}${seoDescriptionNetwork(this.stateService.network)} address ${this.addressString}:INTERPOLATION:.`);
|
||||
this.seoService.setDescription($localize`:@@meta.description.bitcoin.address:See mempool transactions, confirmed transactions, balance, and more for ${this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'} ${seoDescriptionNetwork(this.stateService.network)} address ${this.addressString}:INTERPOLATION:.`);
|
||||
|
||||
return (this.addressString.match(/04[a-fA-F0-9]{128}|(02|03)[a-fA-F0-9]{64}/)
|
||||
? this.electrsApiService.getPubKeyAddress$(this.addressString)
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
<td *ngSwitchCase="'added'"><span class="badge badge-warning" i18n="transaction.audit.added">Added</span></td>
|
||||
<td *ngSwitchCase="'selected'"><span class="badge badge-warning" i18n="transaction.audit.marginal">Marginal fee rate</span></td>
|
||||
<td *ngSwitchCase="'rbf'"><span class="badge badge-warning" i18n="transaction.audit.conflicting">Conflicting</span></td>
|
||||
<td *ngSwitchCase="'accelerated'"><span class="badge badge-success" i18n="transaction.audit.accelerated">Accelerated</span></td>
|
||||
<td *ngSwitchCase="'accelerated'"><span class="badge badge-accelerated" i18n="transaction.audit.accelerated">Accelerated</span></td>
|
||||
</ng-container>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -19,4 +19,17 @@
|
||||
|
||||
.td-width {
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.badge.badge-accelerated {
|
||||
background-color: #653b9c;
|
||||
box-shadow: #ad7de57f 0px 0px 12px -2px;
|
||||
color: white;
|
||||
animation: acceleratePulse 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes acceleratePulse {
|
||||
0% { background-color: #653b9c; box-shadow: #ad7de57f 0px 0px 12px -2px; }
|
||||
50% { background-color: #8457bb; box-shadow: #ad7de5 0px 0px 18px -2px;}
|
||||
100% { background-color: #653b9c; box-shadow: #ad7de57f 0px 0px 12px -2px; }
|
||||
}
|
||||
@@ -219,13 +219,13 @@
|
||||
<div class="box" *ngIf="!error && webGlEnabled && showAudit">
|
||||
<div class="nav nav-tabs" *ngIf="isMobile && showAudit">
|
||||
<a class="nav-link" [class.active]="mode === 'projected'"
|
||||
fragment="projected" (click)="changeMode('projected')"><ng-container i18n="block.expected">Expected</ng-container> <span class="badge badge-pill badge-warning" i18n="beta">beta</span></a>
|
||||
fragment="projected" (click)="changeMode('projected')"><ng-container i18n="block.expected">Expected</ng-container></a>
|
||||
<a class="nav-link" [class.active]="mode === 'actual'" i18n="block.actual"
|
||||
fragment="actual" (click)="changeMode('actual')">Actual</a>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm">
|
||||
<h3 class="block-subtitle" *ngIf="!isMobile"><ng-container i18n="block.expected-block">Expected Block</ng-container> <span class="badge badge-pill badge-warning beta" i18n="beta">beta</span></h3>
|
||||
<h3 class="block-subtitle" *ngIf="!isMobile"><ng-container i18n="block.expected-block">Expected Block</ng-container></h3>
|
||||
<div class="block-graph-wrapper">
|
||||
<app-block-overview-graph #blockGraphProjected [isLoading]="isLoadingOverview" [resolution]="86"
|
||||
[blockLimit]="stateService.blockVSize" [orientation]="'top'" [flip]="false" [mirrorTxid]="hoverTx" [auditHighlighting]="showAudit"
|
||||
|
||||
@@ -249,10 +249,8 @@ export class HashrateChartComponent implements OnInit {
|
||||
for (const tick of ticks) {
|
||||
if (tick.seriesIndex === 0) { // Hashrate
|
||||
let hashrate = tick.data[1];
|
||||
if (this.isMobile()) {
|
||||
hashratePowerOfTen = selectPowerOfTen(tick.data[1]);
|
||||
hashrate = Math.round(tick.data[1] / hashratePowerOfTen.divider);
|
||||
}
|
||||
hashratePowerOfTen = selectPowerOfTen(tick.data[1], 10);
|
||||
hashrate = tick.data[1] / hashratePowerOfTen.divider;
|
||||
hashrateString = `${tick.marker} ${tick.seriesName}: ${formatNumber(hashrate, this.locale, '1.0-0')} ${hashratePowerOfTen.unit}H/s<br>`;
|
||||
} else if (tick.seriesIndex === 1) { // Difficulty
|
||||
let difficultyPowerOfTen = hashratePowerOfTen;
|
||||
@@ -260,18 +258,14 @@ export class HashrateChartComponent implements OnInit {
|
||||
if (difficulty === null) {
|
||||
difficultyString = `${tick.marker} ${tick.seriesName}: No data<br>`;
|
||||
} else {
|
||||
if (this.isMobile()) {
|
||||
difficultyPowerOfTen = selectPowerOfTen(tick.data[1]);
|
||||
difficulty = Math.round(tick.data[1] / difficultyPowerOfTen.divider);
|
||||
}
|
||||
difficultyPowerOfTen = selectPowerOfTen(tick.data[1]);
|
||||
difficulty = tick.data[1] / difficultyPowerOfTen.divider;
|
||||
difficultyString = `${tick.marker} ${tick.seriesName}: ${formatNumber(difficulty, this.locale, '1.2-2')} ${difficultyPowerOfTen.unit}<br>`;
|
||||
}
|
||||
} else if (tick.seriesIndex === 2) { // Hashrate MA
|
||||
let hashrate = tick.data[1];
|
||||
if (this.isMobile()) {
|
||||
hashratePowerOfTen = selectPowerOfTen(tick.data[1]);
|
||||
hashrate = Math.round(tick.data[1] / hashratePowerOfTen.divider);
|
||||
}
|
||||
hashratePowerOfTen = selectPowerOfTen(tick.data[1], 10);
|
||||
hashrate = tick.data[1] / hashratePowerOfTen.divider;
|
||||
hashrateStringMA = `${tick.marker} ${tick.seriesName}: ${formatNumber(hashrate, this.locale, '1.0-0')} ${hashratePowerOfTen.unit}H/s`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,8 +209,7 @@ export class IncomingTransactionsGraphComponent implements OnInit, OnChanges, On
|
||||
obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 80;
|
||||
return obj;
|
||||
},
|
||||
extraCssText: `width: ${(['2h', '24h'].includes(this.windowPreference) || this.template === 'widget') ? '125px' : '135px'};
|
||||
background: transparent;
|
||||
extraCssText: `background: transparent;
|
||||
border: none;
|
||||
box-shadow: none;`,
|
||||
axisPointer: {
|
||||
@@ -233,7 +232,8 @@ export class IncomingTransactionsGraphComponent implements OnInit, OnChanges, On
|
||||
}
|
||||
}
|
||||
});
|
||||
return `<div class="tx-wrapper-tooltip-chart ${(this.template === 'advanced') ? 'tx-wrapper-tooltip-chart-advanced' : ''}">${itemFormatted}</div>`;
|
||||
return `<div class="tx-wrapper-tooltip-chart ${(this.template === 'advanced') ? 'tx-wrapper-tooltip-chart-advanced' : ''}"
|
||||
style="width: ${(this.windowPreference === '2h' || this.template === 'widget') ? '125px' : '215px'}">${itemFormatted}</div>`;
|
||||
}
|
||||
},
|
||||
xAxis: [
|
||||
|
||||
@@ -163,10 +163,8 @@ export class PoolComponent implements OnInit {
|
||||
let hashratePowerOfTen: any = selectPowerOfTen(1);
|
||||
let hashrate = ticks[0].data[1];
|
||||
|
||||
if (this.isMobile()) {
|
||||
hashratePowerOfTen = selectPowerOfTen(ticks[0].data[1]);
|
||||
hashrate = Math.round(ticks[0].data[1] / hashratePowerOfTen.divider);
|
||||
}
|
||||
hashratePowerOfTen = selectPowerOfTen(ticks[0].data[1], 10);
|
||||
hashrate = ticks[0].data[1] / hashratePowerOfTen.divider;
|
||||
|
||||
return `
|
||||
<b style="color: white; margin-left: 18px">${ticks[0].axisValueLabel}</b><br>
|
||||
|
||||
@@ -40,6 +40,8 @@ export class SearchFormComponent implements OnInit {
|
||||
regexBlockhash = /^[0]{8}[a-fA-F0-9]{56}$/;
|
||||
regexTransaction = /^([a-fA-F0-9]{64})(:\d+)?$/;
|
||||
regexBlockheight = /^[0-9]{1,9}$/;
|
||||
regexDate = /^(?:\d{4}[-/]\d{1,2}[-/]\d{1,2}(?: \d{1,2}:\d{2})?)$/;
|
||||
regexUnixTimestamp = /^\d{10}$/;
|
||||
focus$ = new Subject<string>();
|
||||
click$ = new Subject<string>();
|
||||
|
||||
@@ -173,6 +175,8 @@ export class SearchFormComponent implements OnInit {
|
||||
const lightningResults = result[1];
|
||||
|
||||
const matchesBlockHeight = this.regexBlockheight.test(searchText);
|
||||
const matchesDateTime = this.regexDate.test(searchText) && new Date(searchText).toString() !== 'Invalid Date';
|
||||
const matchesUnixTimestamp = this.regexUnixTimestamp.test(searchText);
|
||||
const matchesTxId = this.regexTransaction.test(searchText) && !this.regexBlockhash.test(searchText);
|
||||
const matchesBlockHash = this.regexBlockhash.test(searchText);
|
||||
const matchesAddress = !matchesTxId && this.regexAddress.test(searchText);
|
||||
@@ -181,10 +185,16 @@ export class SearchFormComponent implements OnInit {
|
||||
searchText = 'B' + searchText;
|
||||
}
|
||||
|
||||
if (matchesDateTime && searchText.indexOf('/') !== -1) {
|
||||
searchText = searchText.replace(/\//g, '-');
|
||||
}
|
||||
|
||||
return {
|
||||
searchText: searchText,
|
||||
hashQuickMatch: +(matchesBlockHeight || matchesBlockHash || matchesTxId || matchesAddress),
|
||||
hashQuickMatch: +(matchesBlockHeight || matchesBlockHash || matchesTxId || matchesAddress || matchesUnixTimestamp || matchesDateTime),
|
||||
blockHeight: matchesBlockHeight,
|
||||
dateTime: matchesDateTime,
|
||||
unixTimestamp: matchesUnixTimestamp,
|
||||
txId: matchesTxId,
|
||||
blockHash: matchesBlockHash,
|
||||
address: matchesAddress,
|
||||
@@ -243,6 +253,13 @@ export class SearchFormComponent implements OnInit {
|
||||
} else {
|
||||
this.navigate('/tx/', matches[0]);
|
||||
}
|
||||
} else if (this.regexDate.test(searchText) || this.regexUnixTimestamp.test(searchText)) {
|
||||
let timestamp: number;
|
||||
this.regexDate.test(searchText) ? timestamp = Math.floor(new Date(searchText).getTime() / 1000) : timestamp = searchText;
|
||||
this.apiService.getBlockDataFromTimestamp$(timestamp).subscribe(
|
||||
(data) => { this.navigate('/block/', data.hash); },
|
||||
(error) => { console.log(error); this.isSearching = false; }
|
||||
);
|
||||
} else {
|
||||
this.searchResults.searchButtonClick();
|
||||
this.isSearching = false;
|
||||
|
||||
@@ -5,6 +5,18 @@
|
||||
<ng-container *ngTemplateOutlet="goTo; context: { $implicit: results.searchText }"></ng-container>
|
||||
</button>
|
||||
</ng-template>
|
||||
<ng-template [ngIf]="results.dateTime">
|
||||
<div class="card-title" i18n="search.bitcoin-block-date">Date</div>
|
||||
<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>
|
||||
</button>
|
||||
</ng-template>
|
||||
<ng-template [ngIf]="results.unixTimestamp">
|
||||
<div class="card-title" i18n="search.bitcoin-block-timestamp">Timestamp</div>
|
||||
<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>
|
||||
</button>
|
||||
</ng-template>
|
||||
<ng-template [ngIf]="results.txId">
|
||||
<div class="card-title" i18n="search.bitcoin-transaction">Bitcoin Transaction</div>
|
||||
<button (click)="clickItem(0)" [class.active]="0 === activeIdx" type="button" role="option" class="dropdown-item">
|
||||
|
||||
@@ -88,7 +88,7 @@ export class TransactionPreviewComponent implements OnInit, OnDestroy {
|
||||
this.seoService.setTitle(
|
||||
$localize`:@@bisq.transaction.browser-title:Transaction: ${this.txId}:INTERPOLATION:`
|
||||
);
|
||||
this.seoService.setDescription($localize`:@@meta.description.bitcoin.transaction:Get real-time status, addresses, fees, script info, and more for ${this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'}${seoDescriptionNetwork(this.stateService.network)} transaction with txid {txid}.`);
|
||||
this.seoService.setDescription($localize`:@@meta.description.bitcoin.transaction:Get real-time status, addresses, fees, script info, and more for ${this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'}${seoDescriptionNetwork(this.stateService.network)} transaction with txid ${this.txId}.`);
|
||||
this.resetTransaction();
|
||||
return merge(
|
||||
of(true),
|
||||
|
||||
@@ -83,9 +83,13 @@
|
||||
|
||||
<!-- Accelerator -->
|
||||
<ng-container *ngIf="!tx?.status?.confirmed && showAccelerationSummary">
|
||||
<div class="title mt-3">
|
||||
<br>
|
||||
<div class="title float-left">
|
||||
<h2>Accelerate</h2>
|
||||
</div>
|
||||
<button type="button" class="btn btn-outline-info accelerator-toggle btn-sm float-right" (click)="showAccelerationSummary = false" i18n="hide-accelerator">Hide accelerator</button>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<div class="box">
|
||||
<app-accelerate-preview [tx]="tx" [scrollEvent]="scrollIntoAccelPreview"></app-accelerate-preview>
|
||||
</div>
|
||||
@@ -508,18 +512,24 @@
|
||||
<app-fee-rate [fee]="tx.feePerVsize"></app-fee-rate>
|
||||
<ng-template [ngIf]="tx?.status?.confirmed">
|
||||
|
||||
<app-tx-fee-rating *ngIf="tx.fee && !hasEffectiveFeeRate" [tx]="tx"></app-tx-fee-rating>
|
||||
<app-tx-fee-rating *ngIf="tx.fee && !hasEffectiveFeeRate && !accelerationInfo" [tx]="tx"></app-tx-fee-rating>
|
||||
</ng-template>
|
||||
</td>
|
||||
</tr>
|
||||
<tr *ngIf="cpfpInfo && hasEffectiveFeeRate">
|
||||
<td *ngIf="tx.acceleration" i18n="transaction.accelerated-fee-rate|Accelerated transaction fee rate">Accelerated fee rate</td>
|
||||
<td *ngIf="!tx.acceleration" i18n="transaction.effective-fee-rate|Effective transaction fee rate">Effective fee rate</td>
|
||||
<tr *ngIf="(cpfpInfo && hasEffectiveFeeRate) || accelerationInfo">
|
||||
<td *ngIf="tx.acceleration || accelerationInfo" i18n="transaction.accelerated-fee-rate|Accelerated transaction fee rate">Accelerated fee rate</td>
|
||||
<td *ngIf="!(tx.acceleration || accelerationInfo)" i18n="transaction.effective-fee-rate|Effective transaction fee rate">Effective fee rate</td>
|
||||
<td>
|
||||
<div class="effective-fee-container">
|
||||
<app-fee-rate [fee]="tx.effectiveFeePerVsize"></app-fee-rate>
|
||||
<ng-template [ngIf]="tx?.status?.confirmed">
|
||||
<app-tx-fee-rating class="ml-2 mr-2" *ngIf="tx.fee || tx.effectiveFeePerVsize" [tx]="tx"></app-tx-fee-rating>
|
||||
<app-fee-rate *ngIf="accelerationInfo" [fee]="accelerationInfo.actualFeeDelta" [weight]="accelerationInfo.effectiveVsize * 4"></app-fee-rate>
|
||||
<app-fee-rate *ngIf="!accelerationInfo" [fee]="tx.effectiveFeePerVsize"></app-fee-rate>
|
||||
|
||||
<ng-template [ngIf]="tx?.status?.confirmed || tx.acceleration || accelerationInfo">
|
||||
<app-tx-fee-rating *ngIf="!(tx.acceleration || accelerationInfo) && (tx.fee || tx.effectiveFeePerVsize)" class="ml-2 mr-2 effective-fee-rating" [tx]="tx"></app-tx-fee-rating>
|
||||
<ng-container *ngIf="accelerationInfo || tx.acceleration">
|
||||
|
||||
<span class="badge badge-accelerated" i18n="transaction.audit.accelerated">Accelerated</span>
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
</div>
|
||||
<button *ngIf="cpfpInfo.bestDescendant || cpfpInfo.descendants?.length || cpfpInfo.ancestors?.length" type="button" class="btn btn-outline-info btn-sm btn-small-height float-right" (click)="showCpfpDetails = !showCpfpDetails">CPFP <fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true"></fa-icon></button>
|
||||
|
||||
@@ -60,6 +60,11 @@
|
||||
top: -1px;
|
||||
}
|
||||
|
||||
.badge.badge-accelerated {
|
||||
background-color: #653b9c;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-small-height {
|
||||
line-height: 1;
|
||||
}
|
||||
@@ -152,6 +157,16 @@
|
||||
@media (min-width: 768px){
|
||||
display: inline-block;
|
||||
}
|
||||
@media (max-width: 425px){
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
.effective-fee-rating {
|
||||
@media (max-width: 767px){
|
||||
margin-right: 0px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
@@ -169,7 +184,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
.details-button, .flow-toggle {
|
||||
.details-button, .flow-toggle, .accelerator-toggle {
|
||||
margin-top: -5px;
|
||||
margin-left: 10px;
|
||||
@media (min-width: 768px){
|
||||
|
||||
@@ -21,7 +21,7 @@ import { ApiService } from '../../services/api.service';
|
||||
import { SeoService } from '../../services/seo.service';
|
||||
import { StorageService } from '../../services/storage.service';
|
||||
import { seoDescriptionNetwork } from '../../shared/common.utils';
|
||||
import { BlockExtended, CpfpInfo, RbfTree, MempoolPosition, DifficultyAdjustment } from '../../interfaces/node-api.interface';
|
||||
import { BlockExtended, CpfpInfo, RbfTree, MempoolPosition, DifficultyAdjustment, Acceleration } from '../../interfaces/node-api.interface';
|
||||
import { LiquidUnblinding } from './liquid-ublinding';
|
||||
import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pipe';
|
||||
import { Price, PriceService } from '../../services/price.service';
|
||||
@@ -49,6 +49,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
fetchCpfpSubscription: Subscription;
|
||||
fetchRbfSubscription: Subscription;
|
||||
fetchCachedTxSubscription: Subscription;
|
||||
fetchAccelerationSubscription: Subscription;
|
||||
txReplacedSubscription: Subscription;
|
||||
txRbfInfoSubscription: Subscription;
|
||||
mempoolPositionSubscription: Subscription;
|
||||
@@ -62,12 +63,14 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
rbfReplaces: string[];
|
||||
rbfInfo: RbfTree;
|
||||
cpfpInfo: CpfpInfo | null;
|
||||
accelerationInfo: Acceleration | null = null;
|
||||
sigops: number | null;
|
||||
adjustedVsize: number | null;
|
||||
showCpfpDetails = false;
|
||||
fetchCpfp$ = new Subject<string>();
|
||||
fetchRbfHistory$ = new Subject<string>();
|
||||
fetchCachedTx$ = new Subject<string>();
|
||||
fetchAcceleration$ = new Subject<string>();
|
||||
isCached: boolean = false;
|
||||
now = Date.now();
|
||||
da$: Observable<DifficultyAdjustment>;
|
||||
@@ -238,6 +241,25 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
}
|
||||
});
|
||||
|
||||
this.fetchAccelerationSubscription = this.fetchAcceleration$.pipe(
|
||||
tap(() => {
|
||||
this.accelerationInfo = null;
|
||||
}),
|
||||
switchMap((blockHash: string) => {
|
||||
return this.apiService.getAccelerationHistory$({ blockHash });
|
||||
}),
|
||||
catchError(() => {
|
||||
return of(null);
|
||||
})
|
||||
).subscribe((accelerationHistory) => {
|
||||
for (const acceleration of accelerationHistory) {
|
||||
if (acceleration.txid === this.txId && (acceleration.status === 'completed' || acceleration.status === 'mined') && acceleration.feePaid > 0) {
|
||||
acceleration.actualFeeDelta = Math.max(acceleration.effectiveFee, acceleration.effectiveFee + acceleration.feePaid - acceleration.baseFee - acceleration.vsizeFee);
|
||||
this.accelerationInfo = acceleration;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
this.mempoolPositionSubscription = this.stateService.mempoolTxPosition$.subscribe(txPosition => {
|
||||
this.now = Date.now();
|
||||
if (txPosition && txPosition.txid === this.txId && txPosition.position) {
|
||||
@@ -365,6 +387,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
this.getTransactionTime();
|
||||
}
|
||||
} else {
|
||||
this.fetchAcceleration$.next(tx.status.block_hash);
|
||||
this.transactionTime = 0;
|
||||
}
|
||||
|
||||
@@ -417,6 +440,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
};
|
||||
this.stateService.markBlock$.next({ blockHeight: block.height });
|
||||
this.audioService.playSound('magic');
|
||||
this.fetchAcceleration$.next(block.id);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -585,6 +609,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
this.rbfInfo = null;
|
||||
this.rbfReplaces = [];
|
||||
this.showCpfpDetails = false;
|
||||
this.accelerationInfo = null;
|
||||
this.txInBlockIndex = null;
|
||||
this.mempoolPosition = null;
|
||||
document.body.scrollTo(0, 0);
|
||||
@@ -664,6 +689,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
this.fetchCpfpSubscription.unsubscribe();
|
||||
this.fetchRbfSubscription.unsubscribe();
|
||||
this.fetchCachedTxSubscription.unsubscribe();
|
||||
this.fetchAccelerationSubscription.unsubscribe();
|
||||
this.txReplacedSubscription.unsubscribe();
|
||||
this.txRbfInfoSubscription.unsubscribe();
|
||||
this.queryParamsSubscription.unsubscribe();
|
||||
|
||||
@@ -2922,7 +2922,7 @@ export const restApiDocsData = [
|
||||
fragment: "get-blocks-bulk",
|
||||
title: "GET Blocks (Bulk)",
|
||||
description: {
|
||||
default: "<p>Returns details on the range of blocks between <code>:minHeight</code> and <code>:maxHeight</code>, inclusive, up to 10 blocks. If <code>:maxHeight</code> is not specified, it defaults to the current tip.</p><p>To return data for more than 10 blocks, consider becoming an <a href='/enterprise'>enterprise sponsor</a>.</p>"
|
||||
default: "<p>Returns details on the range of blocks between <code>:minHeight</code> and <code>:maxHeight</code>, inclusive, up to 10 blocks. If <code>:maxHeight</code> is not specified, it defaults to the current tip.</p><p>To return data for more than 10 blocks, consider becoming an <a href='https://mempool.space/enterprise'>enterprise sponsor</a>.</p>"
|
||||
},
|
||||
urlString: "/v1/blocks-bulk/:minHeight[/:maxHeight]",
|
||||
showConditions: bitcoinNetworks,
|
||||
@@ -8775,6 +8775,83 @@ export const faqData = [
|
||||
fragment: "what-is-svb",
|
||||
title: "What is sat/vB?",
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
category: "accelerator",
|
||||
fragment: "mempool-accelerator",
|
||||
title: "Mempool Accelerator™",
|
||||
showConditions: bitcoinNetworks
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "what-is-mempool-accelerator",
|
||||
title: "What is Mempool Accelerator™?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "how-does-mempool-accelerator-work",
|
||||
title: "How does Mempool Accelerator™ work?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "join-accelerator-waitlist",
|
||||
title: "How can I join the Waitlist for the Mempool Accelerator™?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "who-has-access-to-mempool-accelerator",
|
||||
title: "Who has access to Mempool Accelerator™?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "account-requirement",
|
||||
title: "Why is an account required for Mempool Accelerator™?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "mempool-accelerator-balance",
|
||||
title: "How do I deposit into Mempool Accelerator™?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "how-to-request-an-acceleration",
|
||||
title: "How do I request an acceleration?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "cancelling-an-acceleration",
|
||||
title: "How do I cancel an acceleration?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "mempool-accelerator-improves-transparency",
|
||||
title: "Does this break fee estimation algorithms?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "accelerator",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "will-mining-pools-underpay-miners",
|
||||
title: "Will mining pools underpay miners?",
|
||||
},
|
||||
{
|
||||
type: "category",
|
||||
category: "help",
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<div class="doc-content">
|
||||
|
||||
<p class="doc-welcome-note">Below is a reference for the {{ network.val === '' ? 'Bitcoin' : network.val.charAt(0).toUpperCase() + network.val.slice(1) }} <ng-container i18n="api-docs.title">REST API service</ng-container>.</p>
|
||||
<p class="doc-welcome-note api-note" *ngIf="officialMempoolInstance">Note that we enforce rate limits. If you exceed these limits, you will get an HTTP 429 error. If you repeatedly exceed the limits, you may be banned from accessing the service altogether. Consider an <a href="/enterprise">enterprise sponsorship</a> if you need higher API limits.</p>
|
||||
<p class="doc-welcome-note api-note" *ngIf="officialMempoolInstance">Note that we enforce rate limits. If you exceed these limits, you will get an HTTP 429 error. If you repeatedly exceed the limits, you may be banned from accessing the service altogether. Consider an <a href="https://mempool.space/enterprise">enterprise sponsorship</a> if you need higher API limits.</p>
|
||||
|
||||
<div class="doc-item-container" *ngFor="let item of restDocs">
|
||||
<h3 *ngIf="( item.type === 'category' ) && ( item.showConditions.indexOf(network.val) > -1 )">{{ item.title }}</h3>
|
||||
@@ -123,7 +123,7 @@
|
||||
<p>{{electrsPort}}</p>
|
||||
<p class="subtitle">SSL</p>
|
||||
<p>Enabled</p>
|
||||
<p class="note" *ngIf="network.val !== 'signet'">Electrum RPC interface for Bitcoin Signet is <a href="/signet/docs/api/electrs">publicly available</a>. Electrum RPC interface for all other networks is available to <a href='/enterprise'>sponsors</a> only—whitelisting is required.</p>
|
||||
<p class="note" *ngIf="network.val !== 'signet'">Electrum RPC interface for Bitcoin Signet is <a href="/signet/docs/api/electrs">publicly available</a>. Electrum RPC interface for all other networks is available to <a href='https://mempool.space/enterprise'>sponsors</a> only—whitelisting is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -180,15 +180,37 @@
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="why-is-transaction-stuck-in-mempool">
|
||||
<p>If it's been a while and your transaction hasn't confirmed, your transaction is probably using a lower feerate relative to other transactions currently in the mempool. Depending on how you made your transaction, there may be <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="how-to-get-transaction-confirmed-quickly">ways to accelerate the process</a>.</p><p>There's no need to panic—a Bitcoin transaction will always either confirm completely (or not at all) at some point. As long as you have your transaction's ID, you can always see where your funds are.</p><p style='font-weight:700'>This site only provides data about the Bitcoin network—it cannot help you get your transaction confirmed quicker.</p>
|
||||
<p>If it's been a while and your transaction hasn't confirmed, your transaction is probably using a lower feerate relative to other transactions currently in the mempool.</p>
|
||||
<p style='font-weight:700'> You can accelerate your transaction with <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="what-is-mempool-accelerator">Mempool Accelerator™</a></p>
|
||||
<p>Depending on how you made your transaction, there may be <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="how-to-get-transaction-confirmed-quickly">other ways</a> to increase the fee.</p>
|
||||
<p>There's no need to panic—a Bitcoin transaction will always either confirm completely (or not at all) at some point. As long as you have your transaction's ID, you can always see where your funds are.</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="how-to-get-transaction-confirmed-quickly">
|
||||
<p>To get your transaction confirmed quicker, you will need to increase its effective feerate.</p><p>If your transaction was created with RBF enabled, your stuck transaction can simply be replaced with a new one that has a higher fee.</p><p>Otherwise, if you control any of the stuck transaction's outputs, you can use CPFP to increase your stuck transaction's effective feerate.</p><p>If you are not sure how to do RBF or CPFP, work with the tool you used to make the transaction (wallet software, exchange company, etc). This website only provides data about the Bitcoin network, so there is nothing it can do to help you get your transaction confirmed quicker.</p>
|
||||
<p>There are 3 ways to increase the incentive for a miner to include your transaction</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p><b>Replace By Fee (RBF)</b></p>
|
||||
<p>If you are the sender in a bitcoin transaction you can create a new transaction which spends the same inputs but with a higher fee.</p>
|
||||
<p>Full RBF miners will mine blocks containing your replacement even if you don't flag RBF, but you may have issues propagating the transaction. </p>
|
||||
</li>
|
||||
<li>
|
||||
<p><b>Child Pays for Parent (CPFP)</b></p>
|
||||
<p>If you are the recipient of an unconfirmed transaction output you can spend it and increase the effective fee (the weighted average of both the original unconfirmed transaction and your CPFP transaction).</p>
|
||||
<p>A miner can't confirm a CPFP transaction without also confirming the original, making it impossible for the miner to take the fee from your CPFP unless your unconfirmed original transaction is included in the same (or a previous) block.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><b>Out of Band</b></p>
|
||||
<p>The <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="what-is-mempool-accelerator">Mempool Accelerator™</a> is a transaction acceleration marketplace which enables acceleration offers to be made to mining partners, where payment is made via an alternate method (not in the onchain transaction fee).</p>
|
||||
<p>Unlike RBF and CPFP a new onchain transaction does not need to be signed for each fee increase and depending on the payment method used may not be required at all, but trust is required by one or more parties involved (miner or user). </p>
|
||||
</li>
|
||||
</ol>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="how-prevent-stuck-transaction">
|
||||
<p>You must use an adequate transaction fee commensurate with how quickly you need the transaction to be confirmed. See Mempool's fee estimates on the <a [routerLink]="['/' | relativeUrl]">front page</a>.</p><p>Also consider using RBF (if your wallet supports it) so that you can bump the feerate on your transaction if it does end up getting stuck.</p>
|
||||
<p>You must use an adequate transaction fee commensurate with how quickly you need the transaction to be confirmed. See Mempool's fee estimates on the <a [routerLink]="['/' | relativeUrl]">front page</a>.</p>
|
||||
<p>If you need your transaction to be confirmed quickly but don't want to overpay you can use the <a href="https://mempool.space/accelerator" target="_blank">Mempool Accelerator™ </a>.</p>
|
||||
<p>You may be able to increase your transaction bid manually <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="how-to-get-transaction-confirmed-quickly">using RBF / CPFP</a>, if your wallet supports these features.</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="looking-up-transactions">
|
||||
@@ -288,7 +310,7 @@
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="host-my-own-instance-server">
|
||||
<p>You can manually install Mempool on your own server, but this requires advanced sysadmin skills since you will be manually configuring everything. You could also use our <a href="https://github.com/mempool/mempool/tree/master/docker" target="_blank">Docker images</a>.</p><p>In any case, we only provide support for manual deployments to <a href="/enterprise">enterprise sponsors</a>.</p>
|
||||
<p>You can manually install Mempool on your own server, but this requires advanced sysadmin skills since you will be manually configuring everything. You could also use our <a href="https://github.com/mempool/mempool/tree/master/docker" target="_blank">Docker images</a>.</p><p>In any case, we only provide support for manual deployments to <a href="https://mempool.space/enterprise">enterprise sponsors</a>.</p>
|
||||
<p>For casual users, we strongly suggest installing Mempool using one of the <a href="https://github.com/mempool/mempool#one-click-installation" target="_blank">1-click install methods</a>.</p>
|
||||
</ng-template>
|
||||
|
||||
@@ -299,3 +321,67 @@
|
||||
<ng-template type="address-lookup-issues">
|
||||
<p>If you're getting errors when doing address lookups, it's probably because of your Electrum server backend.</p><p>Mempool uses an Electrum server to do address lookups. There are several implementations of the Electrum server protocol, and Mempool can use any of them, but the implementation you use affects performance:</p><ol><li><a href="https://github.com/romanz/electrs" target="_blank">romanz/electrs</a>. This is a common choice for its low resource requirements, and most full-node distros use it. But while this implementation works great for basic queries, it will struggle with heavier ones (e.g. looking up addresses with many transactions)—especially when running on low-power hardware like a Raspberry Pi.</li><li><a href="https://github.com/cculianu/Fulcrum" target="_blank">Fulcrum</a>. Fulcrum requires more resources than romanz/electrs but it can still run on a Raspberry Pi, and it handles heavy queries much more efficiently. If you're having issues with romanz/electrs, Fulcrum is worth a try.</li><li><a href="https://github.com/Blockstream/electrs" target="_blank">blockstream/electrs</a>. If you have stronger hardware, consider running Blockstream's electrs implementation. It's the backend mempool.space uses, and is also what powers blockstream.info.</li></ol>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="what-is-mempool-accelerator">
|
||||
<p><a href="https://mempool.space/accelerator" target="_blank">Mempool Accelerator™ </a> is a bitcoin transaction prioritisation service offered by mempool.space in collaboration bitcoin mining partners - Using the accelerator you can get your transaction confirmed quickly and easily.</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="how-does-mempool-accelerator-work">
|
||||
<p>When a user requests an acceleration the following actions are taken:</p>
|
||||
<ol>
|
||||
<li>A hold of an amount equal to the "Maximum Acceleration Bid" is placed on the users account balance.</li>
|
||||
<li>The transaction is monitored to detect ejection from the accelerator mempool. If at any time the transaction is replaced or otherwise ejected from the accelerator mempool the transaction acceleration will be cancelled.</li>
|
||||
<li>The acceleration request is sent to our mining partners, who apply a fee delta equal to the "Maximum Acceleration Bid" to the transaction.</li>
|
||||
<li>The transaction is included in the next block produced by our mining partners.</li>
|
||||
<li>mempool.space calculates the acceleration fee retrospectively (taking into account regular and accelerated transactions) and debits the user balance appropriately. </li>
|
||||
<li>Any user balance still on hold is released for future accelerations.</li>
|
||||
</ol>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="join-accelerator-waitlist">
|
||||
<p>If you <a href="https://mempool.space/signup" target="_blank">sign up for an account</a> you will automatically join the Mempool Accelerator™ waitlist.</p>
|
||||
<p>You will get notified once you are granted access, although this will not happy until internal testing is completed and the service is rolled out. See <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="who-has-access-to-mempool-accelerator">here</a> for more details.</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="who-has-access-to-mempool-accelerator">
|
||||
<p>Currently access to Mempool Accelerator™ is limited to internal testers.</p>
|
||||
<p>Anyone can <a href="https://mempool.space/signup" target="_blank">sign up</a> to join the waitlist, though their account will not be authorized immediately.
|
||||
<p>Users who have signed up for the waitlist will see a banner in their account accelerator overview tab stating "You are currently on the waitlist. You will get notified once you are granted access". No user action is required and access will be granted as soon as possible.</p>
|
||||
<p>Once the service is ready access will be rolled out to Mempool Enterprise® Sponsors and those on the <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="join-accelerator-waitlist">waitlist</a> for Mempool Accelerator™. </p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="account-requirement">
|
||||
<p>The blockspace market will change between the time when a user requests a transaction acceleration and the time that one of our mining partners finds a block. At the time of making an acceleration request it is not possible to know what bid will be sufficient to get into the next block mined by our mining partners, therefore it is not possible to know how much the user should pay.</p>
|
||||
<p>For this reason, at launch is is necessary to <a href="https://mempool.space/signup" target="_blank">sign up for an account</a> to use the Mempool Accelerator™. Having an account makes it possible to place a hold on user balance while awaiting an acceleration, and retrospectively charge customers the appropriate market rate, leaving the remaining balance for subsequent transaction accelerations. This makes the service very convenient for high volume users who can make many accelerations with a single deposit into their Mempool account.</p>
|
||||
<p>We know that some users would prefer to pay per acceleration without using an account, and we hope to develop this functionality in the future.</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="mempool-accelerator-balance">
|
||||
<p>Mempool Accelerator™ will initially use an accounts model in which <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="who-has-access-to-mempool-accelerator">authorized users</a> can top-up their account balance by depositing bitcoin (on chain or lightning) or L-BTC, and draw down on their credit when making an acceleration. </p>
|
||||
<p>After <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="how-to-request-an-acceleration">requesting an acceleration</a> a hold will be placed on the user account with a value equal to the maximum acceleration bid. Once the acceleration is completed the appropriate market price will be computed retrospectively and only this amount will be debited from the user balance, with the remaining held balance being released.</p>
|
||||
<p>If the transaction is not accelerated the user will not be charged, and the hold will be released. If the transaction is ejected from the Mempool Accelerator™ mempool we reserve the right to charge you. </p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="how-to-request-an-acceleration">
|
||||
<p> A user of mempool.space can browse to an unconfirmed transaction and click the accelerate button in the ETA field. They will then be shown the Acceleration details, including a breakdown of the fees associated with the service.</p>
|
||||
<p>Provided the user has an <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="who-has-access-to-mempool-accelerator">authorized account</a> and a <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="who-has-access-to-mempool-accelerator">sufficient balance</a> they can click the Accelerate button.</p>
|
||||
<p> Optionally, prior to clicking the Accelerate button the user may adjust the maximum acceleration bid.</p>
|
||||
<p>Once a transaction acceleration has been requested it cannot be cancelled (<a [routerLink]="['/docs/faq' | relativeUrl]" fragment="cancelling-an-acceleration">read more</a>).</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="cancelling-an-acceleration">
|
||||
<p> Once an acceleration is requested it cannot be cancelled by the user. To give the user control over how much they may pay for the acceleration the user can select the maximum acceleration bid when submitting their acceleration request. If the required fee for acceleration exceeds the maximum bid set by the user the acceleration will be cancelled automatically.</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="mempool-accelerator-improves-transparency">
|
||||
<p>Transaction prioritisation services have existed for much of bitcoin's history, and miners have always been able to choose which transactions are included in their blocks. By running this service with a commitment to transparency we hope to improve public access to blockspace market data, including out of band offers. This transparency is novel, current transaction prioritisation services are private and although transactions which were included as a result of out of band payments can be identified, the amount paid is not public data. Furthermore, these transactions can only be identified in retrospect, after a block has been mined wheres acceleration bids are shown public on Mempool Space when they are made.</p>
|
||||
<p>Mempool Accelerator™ publishes data on all accelerated transactions for public access. This information is available both on the mempool.space accelerator website and via an API. By making this information public other entities within the bitcoin ecosystem can better understand current and historic blockspace market dynamics. </p>
|
||||
<p>"Fee estimation" algorithms can only utilize data which they have access to, and historically "Fee Estimation" algorithms have been blind to transaction prioritisations where out of band payments are made to miners or mining pools.</p>
|
||||
<p>By making this data public Mempool Accelerator™ will ensure that "Fee Estimation" algorithms can take into account more transaction bid data (both in band and out of band).</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="will-mining-pools-underpay-miners">
|
||||
<p>If mining pools do not distribute out of band income to miners the incentives of each group are misaligned - mining pools earn more and miners earn less for each accelerated transaction.</p>
|
||||
<p> To help miners hold mining pools to account we developed the <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="how-do-block-audits-work">Mempool Block Audit</a> feature which highlights transactions which were likely included due to out of band payments (those which were included in blocks but which were not expected when sorting by effective fee rate). </p>
|
||||
<p> Mempool Accelerator™ <a [routerLink]="['/docs/faq' | relativeUrl]" fragment="mempool-accelerator-improves-transparency">improves transparency</a>, giving miners the data required to inform their decision as to which pool to mine with. For example Mempool Accelerator fees paid to mining pools will be displayed on the block overview pages, making it easy for miners to determine whether this income is shared with miners.</p>
|
||||
</ng-template>
|
||||
|
||||
@@ -302,3 +302,28 @@ export interface INode {
|
||||
funding_balance?: number;
|
||||
closing_balance?: number;
|
||||
}
|
||||
|
||||
export interface Acceleration {
|
||||
txid: string;
|
||||
status: 'requested' | 'accelerating' | 'mined' | 'completed' | 'failed';
|
||||
pools: number[];
|
||||
feePaid: number;
|
||||
added: number; // timestamp
|
||||
lastUpdated: number; // timestamp
|
||||
baseFee: number;
|
||||
vsizeFee: number;
|
||||
effectiveFee: number;
|
||||
effectiveVsize: number;
|
||||
feeDelta: number;
|
||||
blockHash: string;
|
||||
blockHeight: number;
|
||||
|
||||
actualFeeDelta?: number;
|
||||
}
|
||||
|
||||
export interface AccelerationHistoryParams {
|
||||
timeframe?: string,
|
||||
status?: string,
|
||||
pool?: string,
|
||||
blockHash?: string,
|
||||
}
|
||||
@@ -25,7 +25,7 @@ export class LightningDashboardComponent implements OnInit, AfterViewInit {
|
||||
|
||||
ngOnInit(): void {
|
||||
this.seoService.setTitle($localize`:@@142e923d3b04186ac6ba23387265d22a2fa404e0:Lightning Explorer`);
|
||||
this.seoService.setDescription($localize`:@@meta.description.lightning.dashboard:Get stats on the Lightning network (aggregate capacity, connectivity, etc) and Lightning nodes (channels, liquidity, etc) and Lightning channels (status, fees, etc).`);
|
||||
this.seoService.setDescription($localize`:@@meta.description.lightning.dashboard:Get stats on the Lightning network (aggregate capacity, connectivity, etc), Lightning nodes (channels, liquidity, etc) and Lightning channels (status, fees, etc).`);
|
||||
|
||||
this.nodesRanking$ = this.lightningApiService.getNodesRanking$().pipe(share());
|
||||
this.statistics$ = this.lightningApiService.getLatestStatistics$().pipe(share());
|
||||
|
||||
@@ -20,7 +20,7 @@ export class NodesRankingsDashboard implements OnInit {
|
||||
|
||||
ngOnInit(): void {
|
||||
this.seoService.setTitle($localize`Top lightning nodes`);
|
||||
this.seoService.setDescription($localize`:@@meta.description.lightning.rankings-dashboard:See top the Lightning network nodes ranked by liquidity, connectivity, and age.`);
|
||||
this.seoService.setDescription($localize`:@@meta.description.lightning.rankings-dashboard:See the top Lightning network nodes ranked by liquidity, connectivity, and age.`);
|
||||
this.nodesRanking$ = this.lightningApiService.getNodesRanking$().pipe(share());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';
|
||||
import { CpfpInfo, OptimizedMempoolStats, AddressInformation, LiquidPegs, ITranslators,
|
||||
PoolStat, BlockExtended, TransactionStripped, RewardStats, AuditScore, BlockSizesAndWeights, RbfTree, BlockAudit } from '../interfaces/node-api.interface';
|
||||
PoolStat, BlockExtended, TransactionStripped, RewardStats, AuditScore, BlockSizesAndWeights, RbfTree, BlockAudit, Acceleration, AccelerationHistoryParams } from '../interfaces/node-api.interface';
|
||||
import { BehaviorSubject, Observable, catchError, filter, of, shareReplay, take, tap } from 'rxjs';
|
||||
import { StateService } from './state.service';
|
||||
import { IBackendInfo, WebsocketResponse } from '../interfaces/websocket.interface';
|
||||
@@ -227,6 +227,10 @@ export class ApiService {
|
||||
return this.httpClient.get<BlockExtended>(this.apiBaseUrl + this.apiBasePath + '/api/v1/block/' + hash);
|
||||
}
|
||||
|
||||
getBlockDataFromTimestamp$(timestamp: number): Observable<any> {
|
||||
return this.httpClient.get<number>(this.apiBaseUrl + this.apiBasePath + '/api/v1/mining/blocks/timestamp/' + timestamp);
|
||||
}
|
||||
|
||||
getStrippedBlockTransactions$(hash: string): Observable<TransactionStripped[]> {
|
||||
return this.httpClient.get<TransactionStripped[]>(this.apiBaseUrl + this.apiBasePath + '/api/v1/block/' + hash + '/summary');
|
||||
}
|
||||
@@ -424,4 +428,12 @@ export class ApiService {
|
||||
accelerate$(txInput: string, userBid: number) {
|
||||
return this.httpClient.post<any>(`${SERVICES_API_PREFIX}/accelerator/accelerate`, { txInput: txInput, userBid: userBid });
|
||||
}
|
||||
|
||||
getAccelerations$(): Observable<Acceleration[]> {
|
||||
return this.httpClient.get<Acceleration[]>(`${SERVICES_API_PREFIX}/accelerator/accelerations`);
|
||||
}
|
||||
|
||||
getAccelerationHistory$(params: AccelerationHistoryParams): Observable<Acceleration[]> {
|
||||
return this.httpClient.get<Acceleration[]>(`${SERVICES_API_PREFIX}/accelerator/accelerations/history`, { params: { ...params } });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ import { Inject, Injectable } from '@angular/core';
|
||||
import { ApiService } from './api.service';
|
||||
import { SeoService } from './seo.service';
|
||||
import { StateService } from './state.service';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -11,12 +12,15 @@ export class EnterpriseService {
|
||||
exclusiveHostName = '.mempool.space';
|
||||
subdomain: string | null = null;
|
||||
info: object = {};
|
||||
statsUrl: string;
|
||||
siteId: number;
|
||||
|
||||
constructor(
|
||||
@Inject(DOCUMENT) private document: Document,
|
||||
private apiService: ApiService,
|
||||
private seoService: SeoService,
|
||||
private stateService: StateService,
|
||||
private activatedRoute: ActivatedRoute,
|
||||
) {
|
||||
const subdomain = this.document.location.hostname.indexOf(this.exclusiveHostName) > -1
|
||||
&& this.document.location.hostname.split(this.exclusiveHostName)[0] || false;
|
||||
@@ -56,7 +60,7 @@ export class EnterpriseService {
|
||||
|
||||
insertMatomo(siteId?: number): void {
|
||||
let statsUrl = '//stats.mempool.space/';
|
||||
|
||||
|
||||
if (!siteId) {
|
||||
switch (this.document.location.hostname) {
|
||||
case 'mempool.space':
|
||||
@@ -88,16 +92,63 @@ export class EnterpriseService {
|
||||
}
|
||||
}
|
||||
|
||||
this.statsUrl = statsUrl;
|
||||
this.siteId = siteId;
|
||||
|
||||
// @ts-ignore
|
||||
const _paq = window._paq = window._paq || [];
|
||||
_paq.push(['disableCookies']);
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
_paq.push(['setTrackerUrl', statsUrl+'m.php']);
|
||||
_paq.push(['setSiteId', siteId.toString()]);
|
||||
const d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.src=statsUrl+'m.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
if (window._paq && window['Matomo']) {
|
||||
window['Matomo'].addTracker(statsUrl+'m.php', siteId.toString());
|
||||
const matomo = this.getMatomo();
|
||||
matomo.setDocumentTitle(this.seoService.getTitle());
|
||||
matomo.setCustomUrl(this.getCustomUrl());
|
||||
matomo.disableCookies();
|
||||
matomo.trackPageView();
|
||||
matomo.enableLinkTracking();
|
||||
} else {
|
||||
// @ts-ignore
|
||||
const alreadyInitialized = !!window._paq;
|
||||
// @ts-ignore
|
||||
const _paq = window._paq = window._paq || [];
|
||||
_paq.push(['setDocumentTitle', this.seoService.getTitle()]);
|
||||
_paq.push(['setCustomUrl', this.getCustomUrl()]);
|
||||
_paq.push(['disableCookies']);
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
if (alreadyInitialized) {
|
||||
_paq.push(['addTracker', statsUrl+'m.php', siteId.toString()]);
|
||||
} else {
|
||||
(function() {
|
||||
_paq.push(['setTrackerUrl', statsUrl+'m.php']);
|
||||
_paq.push(['setSiteId', siteId.toString()]);
|
||||
const d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
// @ts-ignore
|
||||
g.type='text/javascript'; g.async=true; g.src=statsUrl+'m.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private getMatomo() {
|
||||
if (this.siteId != null) {
|
||||
return window['Matomo']?.getTracker(this.statsUrl+'m.php', this.siteId);
|
||||
}
|
||||
}
|
||||
|
||||
goal(id: number) {
|
||||
// @ts-ignore
|
||||
this.getMatomo()?.trackGoal(id);
|
||||
}
|
||||
|
||||
private getCustomUrl(): string {
|
||||
let url = window.location.origin + '/';
|
||||
let route = this.activatedRoute;
|
||||
while (route) {
|
||||
const segment = route?.routeConfig?.path;
|
||||
if (segment && segment.length) {
|
||||
url += segment + '/';
|
||||
}
|
||||
route = route.firstChild;
|
||||
}
|
||||
return url;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,17 +76,22 @@ export class WebsocketService {
|
||||
|
||||
this.stateService.resetChainTip();
|
||||
|
||||
this.websocketSubject.complete();
|
||||
this.subscription.unsubscribe();
|
||||
this.websocketSubject = webSocket<WebsocketResponse>(
|
||||
this.webSocketUrl.replace('{network}', this.network ? '/' + this.network : '')
|
||||
);
|
||||
|
||||
this.startSubscription();
|
||||
this.reconnectWebsocket();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
reconnectWebsocket(retrying = false, hasInitData = false) {
|
||||
console.log('reconnecting websocket');
|
||||
this.websocketSubject.complete();
|
||||
this.subscription.unsubscribe();
|
||||
this.websocketSubject = webSocket<WebsocketResponse>(
|
||||
this.webSocketUrl.replace('{network}', this.network ? '/' + this.network : '')
|
||||
);
|
||||
|
||||
this.startSubscription(retrying, hasInitData);
|
||||
}
|
||||
|
||||
startSubscription(retrying = false, hasInitData = false) {
|
||||
if (!hasInitData) {
|
||||
this.stateService.isLoadingWebSocket$.next(true);
|
||||
@@ -237,7 +242,7 @@ export class WebsocketService {
|
||||
this.goneOffline = true;
|
||||
this.stateService.connectionState$.next(0);
|
||||
window.setTimeout(() => {
|
||||
this.startSubscription(true);
|
||||
this.reconnectWebsocket(true);
|
||||
}, retryDelay);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@ import { Component, Input, OnInit } from "@angular/core";
|
||||
import { DomSanitizer, SafeHtml } from "@angular/platform-browser";
|
||||
|
||||
const MempoolErrors = {
|
||||
'internal_server_error': `Something went wrong, please try again later`,
|
||||
'acceleration_duplicated': `This transaction has already been accelerated.`,
|
||||
'acceleration_outbid': `Your fee delta is too low.`,
|
||||
'cannot_accelerate_tx': `Cannot accelerate this transaction.`,
|
||||
'cannot_decode_raw_tx': `Cannot decode this raw transaction.`,
|
||||
'cannot_fetch_raw_tx': `Cannot find this transaction.`,
|
||||
'database_error': `Something went wrong. Please try again later.`,
|
||||
'high_sigop_tx': `This transaction cannot be accelerated.`,
|
||||
'invalid_acceleration_request': `This acceleration request is not valid.`,
|
||||
'invalid_tx_dependencies': `This transaction dependencies are not valid.`,
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2046,6 +2046,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2105,6 +2105,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
@@ -2856,6 +2860,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.block" datatype="html">
|
||||
<source>See size, weight, fee range, included transactions, audit (expected v actual), and more for Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> block <x id="BLOCK_HEIGHT" equiv-text="block.height"/> (<x id="BLOCK_ID" equiv-text="block.id"/>).</source>
|
||||
<target>Zeige Größe, Gewicht, Gebührenbereich, enthaltene Transaktionen, Prüfung von (erwartet vs. tatsächlich) und mehr für Bitcoin <x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> Block <x id="BLOCK_HEIGHT" equiv-text="block.height"/> (<x id="BLOCK_ID" equiv-text="block.id"/>).</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-view/block-view.component.ts</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
@@ -3454,6 +3459,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.liquid.blocks" datatype="html">
|
||||
<source>See the most recent Liquid<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> blocks along with basic stats such as block height, block size, and more.</source>
|
||||
<target>Zeige die neuesten Liquid<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/>-Blöcke zusammen mit grundlegenden Statistiken wie Blockhöhe, Blockgröße und mehr an.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.ts</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
@@ -3461,6 +3467,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.blocks" datatype="html">
|
||||
<source>See the most recent Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> blocks along with basic stats such as block height, block reward, block size, and more.</source>
|
||||
<target>Zeige die neuesten Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/>-Blöcke zusmmen mit grundlegenden Statistiken wie Blockhöhe, Blockbelohnung, Blockgröße und mehr an.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.ts</context>
|
||||
<context context-type="linenumber">64</context>
|
||||
@@ -3586,6 +3593,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1bb6965f8e1bbe40c076528ffd841da86f57f119" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
|
||||
<target><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>Blöcke<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
|
||||
<context context-type="linenumber">10,11</context>
|
||||
@@ -3889,6 +3897,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="93168b4de564d2c5d21d67cf2fb263f27b45e4c8" datatype="html">
|
||||
<source>WU/s</source>
|
||||
<target>WU/s</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/footer/footer.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -4109,6 +4118,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.graphs.hashrate" datatype="html">
|
||||
<source>See hashrate and difficulty for the Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.network)"/> network visualized over time.</source>
|
||||
<target>Zeige die Hashrate und den Schwierigkeitsgrad für das Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.network)"/>-Netzwerk im Zeitverlauf an.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/hashrate-chart/hashrate-chart.component.ts</context>
|
||||
<context context-type="linenumber">75</context>
|
||||
@@ -4216,6 +4226,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.mempool-block" datatype="html">
|
||||
<source>See stats for <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> transactions in the mempool: fee range, aggregate size, and more. Mempool blocks are updated in real-time as the network receives new transactions.</source>
|
||||
<target>Zeige folgende Statistiken für <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/>-Transaktionen im Mempool an: Gebührenbereich, Gesamtgröße und mehr. Mempool-Blöcke werden in Echtzeit aktualisiert, wenn das Netzwerk neue Transaktionen empfängt.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
@@ -4320,6 +4331,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.mining.dashboard" datatype="html">
|
||||
<source>Get real-time Bitcoin mining stats like hashrate, difficulty adjustment, block rewards, pool dominance, and more.</source>
|
||||
<target>Erhalten Sie Bitcoin-Mining-Statistiken in Echtzeit wie Hashrate, Schwierigkeitsanpassung, Blockbelohnungen, Pool-Dominanz und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mining-dashboard/mining-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
@@ -4336,6 +4348,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4e338e7daa64c7a074cee3824fbd7425e5b7c9a5" datatype="html">
|
||||
<source>Pools Luck</source>
|
||||
<target>Pools Glück</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
@@ -4366,6 +4379,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ade0bf412a0fae1e4672505fc1fa79ade185db05" datatype="html">
|
||||
<source>Pools Count</source>
|
||||
<target>Anzahl der Pools</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
@@ -4480,6 +4494,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5d680aaa8e24bb235cf4fbeff3df0bfc8e2f564e" datatype="html">
|
||||
<source>Empty Blocks</source>
|
||||
<target>Leere Blöcke</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
@@ -4505,6 +4520,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.graphs.pool-ranking" datatype="html">
|
||||
<source>See the top Bitcoin mining pools ranked by number of blocks mined, over your desired timeframe.</source>
|
||||
<target>Zeige die Top-Bitcoin-Mining-Pools an, sortiert nach der Anzahl der im gewünschten Zeitraum abgebauten Blöcke.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
@@ -4594,6 +4610,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.mining.pool" datatype="html">
|
||||
<source>See mining pool stats for <x id="PH" equiv-text="poolStats.pool.name"/>: most recent mined blocks, hashrate over time, total block reward to date, known coinbase addresses, and more.</source>
|
||||
<target>Zeige die folgenden Mining-Pool-Statistiken für <x id="PH" equiv-text="poolStats.pool.name"/> an: zuletzt geschürfte Blöcke, Hashrate im Zeitverlauf, bisherige Gesamtblockbelohnung, bekannte Coinbase-Adressen und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool/pool-preview.component.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
@@ -4660,6 +4677,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3dc78651b2810cbb6e830fe7e57499d8cf6a8e4d" datatype="html">
|
||||
<source>Blocks (24h)</source>
|
||||
<target>Blöcke (24h)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
@@ -4774,6 +4792,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.push-tx" datatype="html">
|
||||
<source>Broadcast Transaction</source>
|
||||
<target>Transaktion senden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
@@ -4781,6 +4800,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.push-tx" datatype="html">
|
||||
<source>Broadcast a transaction to the <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> network using the transaction's hash.</source>
|
||||
<target>Senden einer Transaktion mithilfe des Hashs der Transaktion an das Netzwerk <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/>.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.ts</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
@@ -4788,6 +4808,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e3d5a82750902f159122fcca487b07f1af3141f" datatype="html">
|
||||
<source>RBF Replacements</source>
|
||||
<target>RBF-Ersetzung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -4800,6 +4821,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8a9b3afe9486474f0d7767605fe99af99c8ea430" datatype="html">
|
||||
<source>Full RBF</source>
|
||||
<target>Full RBF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -4816,6 +4838,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c88914ee712e3ab5ad5f88de8a6ed12050919ccb" datatype="html">
|
||||
<source>There are no replacements in the mempool yet!</source>
|
||||
<target>Es gibt noch keine Ersetzung im Mempool!</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -4824,6 +4847,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.rbf-list" datatype="html">
|
||||
<source>See the most recent RBF replacements on the Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> network, updated in real-time.</source>
|
||||
<target>Zeige die neuesten RBF-Ersetzungen im Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/>-Netzwerk an, aktualisiert in Echtzeit.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.ts</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
@@ -4869,6 +4893,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="aa28c3afcb8b1a556fc1e1842e48a57f24fd643f" datatype="html">
|
||||
<source>Status</source>
|
||||
<target>Status</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
@@ -4886,6 +4911,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="eb3b032a755fc367f7f6e957d0c7dc9d6db49464" datatype="html">
|
||||
<source>RBF</source>
|
||||
<target>RBF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
@@ -5105,6 +5131,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="d0e134a0886ae71207e912575d226525062b62f1" datatype="html">
|
||||
<source>Clock (Mempool)</source>
|
||||
<target>Uhr (Mempool)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
@@ -5157,6 +5184,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="68d44b7bd049ae93c2bc15973eb5266aec64693e" datatype="html">
|
||||
<source>Cap outliers</source>
|
||||
<target>Ausreißer begrenzen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">122</context>
|
||||
@@ -5165,6 +5193,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.graphs.mempool" datatype="html">
|
||||
<source>See mempool size (in MvB) and transactions per second (in vB/s) visualized over time.</source>
|
||||
<target>Zeige die Mempool-Größe (in MvB) und Transaktionen pro Sekunde (in vB/s) im Zeitverlauf an.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.ts</context>
|
||||
<context context-type="linenumber">67</context>
|
||||
@@ -5172,6 +5201,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.tv" datatype="html">
|
||||
<source>See Bitcoin blocks and mempool congestion in real-time in a simplified format perfect for a TV.</source>
|
||||
<target>Zeige die Bitcoin-Blöcke und den Mempool-Stau in Echtzeit in einem vereinfachten Format, das perfekt für einen Fernseher geeignet ist.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/television/television.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
@@ -5384,6 +5414,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.transaction" datatype="html">
|
||||
<source>Get real-time status, addresses, fees, script info, and more for <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> transaction with txid {txid}.</source>
|
||||
<target>Zeige Echtzeitstatus, Adressen, Gebühren, Skriptinformationen und mehr für die <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/>-Transaktion mit txid {txid}.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction-preview.component.ts</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
@@ -5425,6 +5456,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
|
||||
<source>Accelerate</source>
|
||||
<target>Beschleunigen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">123</context>
|
||||
@@ -5462,6 +5494,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="03721a62015a76e794be64ba2b7e053e801215ea" datatype="html">
|
||||
<source>RBF History</source>
|
||||
<target>RBF-Geschichte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">218</context>
|
||||
@@ -5533,6 +5566,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a8a4dd861f790141e19f773153cf42b5d0b0e6b6" datatype="html">
|
||||
<source>Adjusted vsize</source>
|
||||
<target>Angepasste V-Größe</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
@@ -5551,6 +5585,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3dd65e8fa7035988a691aadcb583862c2a9e336a" datatype="html">
|
||||
<source>Sigops</source>
|
||||
<target>Sigops</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">320</context>
|
||||
@@ -5578,6 +5613,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8b01e0411c7160bfee109e504c84ecee5079c326" datatype="html">
|
||||
<source>Accelerated fee rate</source>
|
||||
<target>Beschleunigter Gebührensatz</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">516</context>
|
||||
@@ -5933,6 +5969,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4fe744df6d36b5e9b0afab728b77fc635b99f040" datatype="html">
|
||||
<source>Recent Replacements</source>
|
||||
<target>Aktuelle Ersetzungen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -5941,6 +5978,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="23c872b0336e20284724607f2887da39bd8142c3" datatype="html">
|
||||
<source>Previous fee</source>
|
||||
<target>Vorherige Gebühr</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
@@ -5949,6 +5987,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="df33bef035883b7afeb388977087f99ab5a54409" datatype="html">
|
||||
<source>New fee</source>
|
||||
<target>Neue Gebühr</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">87</context>
|
||||
@@ -5957,6 +5996,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="aa6ce7e6e6fe5cd080713965451f25bca15a2a25" datatype="html">
|
||||
<source>Recent Transactions</source>
|
||||
<target>Kürzliche Transaktionen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">153</context>
|
||||
@@ -5994,6 +6034,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="9dfdbeb922d811d7b7b3fecd48360a059e52aaba" datatype="html">
|
||||
<source>Incoming Transactions</source>
|
||||
<target>Eingehende Transaktionen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
@@ -6002,6 +6043,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="999bb1a0150c2815a6b4dd64a1850e763603e525" datatype="html">
|
||||
<source><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space mer"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> It cannot help you with retrieving funds, wallet issues, etc.<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/>For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/></source>
|
||||
<target><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space mer"/>mempool.space stellt lediglich Daten über das Bitcoin-Netzwerk bereit.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> Es kann Ihnen beim Abrufen von Geldern, bei Problemen mit der Wallet usw. nicht helfen.<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/>Bei solchen Anfragen müssen Sie Kontakt mit der Entität aufnehmen, die bei der Transaktion geholfen hat (Wallet-Software, Börsenunternehmen usw.).<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
|
||||
<context context-type="linenumber">15,16</context>
|
||||
@@ -6096,6 +6138,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.docs.faq" datatype="html">
|
||||
<source>FAQ</source>
|
||||
<target>FAQ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">45</context>
|
||||
@@ -6103,6 +6146,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.faq" datatype="html">
|
||||
<source>Get answers to common questions like: What is a mempool? Why isn't my transaction confirming? How can I run my own instance of The Mempool Open Source Project? And more.</source>
|
||||
<target>Erhalten Sie Antworten auf häufige Fragen wie: Was ist ein Mempool? Warum wird meine Transaktion nicht bestätigt? Wie kann ich meine eigene Instanz des Mempool Open Source Project ausführen? Und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">46</context>
|
||||
@@ -6110,6 +6154,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.docs.rest" datatype="html">
|
||||
<source>REST API</source>
|
||||
<target>REST API</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">49</context>
|
||||
@@ -6117,6 +6162,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.rest-liquid" datatype="html">
|
||||
<source>Documentation for the liquid.network REST API service: get info on addresses, transactions, assets, blocks, and more.</source>
|
||||
<target>Dokumentation für den liquid.network REST API-Dienst: Erhalte Informationen zu Adressen, Transaktionen, Assets, Blöcken und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
@@ -6124,6 +6170,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.rest-bisq" datatype="html">
|
||||
<source>Documentation for the bisq.markets REST API service: get info on recent trades, current offers, transactions, network state, and more.</source>
|
||||
<target>Dokumentation für den bisq.markets-REST-API-Dienst: Erhalte Informationen zu aktuellen Trades, aktuellen Angeboten, Transaktionen, Netzwerkstatus und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
@@ -6131,6 +6178,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.rest-bitcoin" datatype="html">
|
||||
<source>Documentation for the mempool.space REST API service: get info on addresses, transactions, blocks, fees, mining, the Lightning network, and more.</source>
|
||||
<target>Dokumentation für den REST-API-Dienst mempool.space: Erhalte Informationen zu Adressen, Transaktionen, Blöcken, Gebühren, Mining, dem Lightning-Netzwerk und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">55</context>
|
||||
@@ -6138,6 +6186,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.docs.websocket" datatype="html">
|
||||
<source>WebSocket API</source>
|
||||
<target>WebSocket API</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
@@ -6145,6 +6194,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.websocket-liquid" datatype="html">
|
||||
<source>Documentation for the liquid.network WebSocket API service: get real-time info on blocks, mempools, transactions, addresses, and more.</source>
|
||||
<target>Dokumentation für den liquid.network WebSocket API-Dienst: Erhalte Echtzeitinformationen zu Blöcken, Mempools, Transaktionen, Adressen und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">61</context>
|
||||
@@ -6152,6 +6202,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.websocket-bitcoin" datatype="html">
|
||||
<source>Documentation for the mempool.space WebSocket API service: get real-time info on blocks, mempools, transactions, addresses, and more.</source>
|
||||
<target>Dokumentation für den WebSocket-API-Dienst mempool.space: Erhalte Echtzeitinformationen zu Blöcken, Mempools, Transaktionen, Adressen und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
@@ -6159,6 +6210,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.docs.electrum" datatype="html">
|
||||
<source>Electrum RPC</source>
|
||||
<target>Electrum RPC</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">67</context>
|
||||
@@ -6166,6 +6218,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.electrumrpc" datatype="html">
|
||||
<source>Documentation for our Electrum RPC interface: get instant, convenient, and reliable access to an Esplora instance.</source>
|
||||
<target>Dokumentation für unsere Electrum RPC-Schnittstelle: Erhalte sofortigen, bequemen und zuverlässigen Zugriff auf eine Esplora-Instanz.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">68</context>
|
||||
@@ -6478,6 +6531,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.channel" datatype="html">
|
||||
<source>Overview for Lightning channel <x id="PH" equiv-text="params.get('short_id')"/>. See channel capacity, the Lightning nodes involved, related on-chain transactions, and more.</source>
|
||||
<target>Übersicht über den Lightning-Kanal <x id="PH" equiv-text="params.get('short_id')"/>. Zeige die Kanalkapazität, die beteiligten Lightning-Knoten, zugehörige On-Chain-Transaktionen und mehr an.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-preview.component.ts</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
@@ -6976,6 +7030,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec42ed2d917189340598d7993c29b30c7fd32af4" datatype="html">
|
||||
<source>Connect</source>
|
||||
<target>Verbinden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/group/group.component.html</context>
|
||||
<context context-type="linenumber">73</context>
|
||||
@@ -7026,6 +7081,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="34e302a08660d9860dda71e3f350351d34bda498" datatype="html">
|
||||
<source>Penalties</source>
|
||||
<target>Strafen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/justice-list/justice-list.component.html</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -7103,6 +7159,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.dashboard" datatype="html">
|
||||
<source>Get stats on the Lightning network (aggregate capacity, connectivity, etc) and Lightning nodes (channels, liquidity, etc) and Lightning channels (status, fees, etc).</source>
|
||||
<target>Erhalte Statistiken zum Lightning-Netzwerk (Gesamtkapazität, Konnektivität usw.) und zu Lightning-Knoten (Kanäle, Liquidität usw.) und Lightning-Kanälen (Status, Gebühren usw.).</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
@@ -7212,6 +7269,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.node" datatype="html">
|
||||
<source>Overview for the Lightning network node named <x id="PH" equiv-text="node.alias"/>. See channels, capacity, location, fee stats, and more.</source>
|
||||
<target>Übersicht über den Lightning-Netzwerkknoten mit dem Namen <x id="PH" equiv-text="node.alias"/>. Zeige Kanäle, Kapazität, Standort, Gebührenstatistiken und mehr an.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node-preview.component.ts</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -7272,6 +7330,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a737eb6814b234b0fd00e81b645b95a396711f15" datatype="html">
|
||||
<source>Decoded</source>
|
||||
<target>Decodiert</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
@@ -7410,6 +7469,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.node-map" datatype="html">
|
||||
<source>See the channels of non-Tor Lightning network nodes visualized on a world map. Hover/tap on points on the map for node names and details.</source>
|
||||
<target>Zeige die Kanäle von Nicht-Tor-Lightning-Netzwerkknoten visualisiert auf einer Weltkarte an. Bewegen Sie den Mauszeiger/tippen Sie auf Punkte auf der Karte, um Knotennamen und Details anzuzeigen.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
@@ -7434,6 +7494,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.node-channel-map" datatype="html">
|
||||
<source>See the locations of non-Tor Lightning network nodes visualized on a world map. Hover/tap on points on the map for node names and details.</source>
|
||||
<target>Zeige die Standorte von Nicht-Tor-Lightning-Netzwerkknoten visualisiert auf einer Weltkarte an. Bewegen Sie den Mauszeiger/tippen Sie auf Punkte auf der Karte, um Knotennamen und Details anzuzeigen.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-map/nodes-map.component.ts</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
@@ -7441,6 +7502,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.nodes-network" datatype="html">
|
||||
<source>See the number of Lightning network nodes visualized over time by network: clearnet only (IPv4, IPv6), darknet (Tor, I2p, cjdns), and both.</source>
|
||||
<target>Zeige die Anzahl der Lightning-Netzwerkknoten an, die im Laufe der Zeit nach Netzwerk visualisiert werden: nur Clearnet (IPv4, IPv6), Darknet (Tor, I2p, cjdns) und beide.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
|
||||
<context context-type="linenumber">68</context>
|
||||
@@ -7509,6 +7571,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.nodes-country-overview" datatype="html">
|
||||
<source>See a geographical breakdown of the Lightning network: how many Lightning nodes are hosted in countries around the world, aggregate BTC capacity for each country, and more.</source>
|
||||
<target>Zeige eine geografische Aufschlüsselung des Lightning-Netzwerks an: Wie viele Lightning-Knoten werden in Ländern auf der ganzen Welt gehostet, die gesamte BTC-Kapazität für jedes Land und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
|
||||
<context context-type="linenumber">47</context>
|
||||
@@ -7579,6 +7642,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.nodes-country" datatype="html">
|
||||
<source>Explore all the Lightning nodes hosted in <x id="PH" equiv-text="response.country.en"/> and see an overview of each node's capacity, number of open channels, and more.</source>
|
||||
<target>Erkunde alle Lightning-Knoten, die in <x id="PH" equiv-text="response.country.en"/> gehostet werden, und sehe einen Überblick über die Kapazität jedes Knotens, die Anzahl der offenen Kanäle und mehr an.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.ts</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
@@ -7729,6 +7793,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.nodes-isp" datatype="html">
|
||||
<source>Browse all Bitcoin Lightning nodes using the <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>] ISP and see aggregate stats like total number of nodes, total capacity, and more for the ISP.</source>
|
||||
<target>Durchsuche alle Bitcoin Lightning-Knoten, die den <x id="PH" equiv-text="response.isp"/> [AS <x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>] ISP verwenden, und sehe aggregierte Statistiken wie die Gesamtzahl der Knoten, die Gesamtkapazität und mehr für den ISP.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts</context>
|
||||
<context context-type="linenumber">45</context>
|
||||
@@ -7784,6 +7849,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.ranking.oldest" datatype="html">
|
||||
<source>See the oldest nodes on the Lightning network along with their capacity, number of channels, location, etc.</source>
|
||||
<target>Zeige die ältesten Knoten im Lightning-Netzwerk zusammen mit ihrer Kapazität, Anzahl der Kanäle, Standort usw.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
@@ -7791,6 +7857,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.ranking.liquidity" datatype="html">
|
||||
<source>See Lightning nodes with the most BTC liquidity deployed along with high-level stats like number of open channels, location, node age, and more.</source>
|
||||
<target>Zeige die Lightning-Knoten mit der höchsten bereitgestellten BTC-Liquidität sowie allgemeine Statistiken wie die Anzahl der offenen Kanäle, Standort, Knotenalter und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -7798,6 +7865,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.ranking.channels" datatype="html">
|
||||
<source>See Lightning nodes with the most channels open along with high-level stats like total node capacity, node age, and more.</source>
|
||||
<target>Zeige die Lightning-Knoten mit den meisten offenen Kanälen sowie allgemeine Statistiken wie die Gesamtknotenkapazität, das Knotenalter und mehr.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts</context>
|
||||
<context context-type="linenumber">38</context>
|
||||
@@ -7822,6 +7890,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.rankings-dashboard" datatype="html">
|
||||
<source>See top the Lightning network nodes ranked by liquidity, connectivity, and age.</source>
|
||||
<target>Zeige die besten Lightning-Netzwerkknoten an, sortiert nach Liquidität, Konnektivität und Alter.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
@@ -7829,6 +7898,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.stats-chart" datatype="html">
|
||||
<source>See the capacity of the Lightning network visualized over time in terms of the number of open channels and total bitcoin capacity.</source>
|
||||
<target>Zeige die Kapazität des Lightning-Netzwerks im Zeitverlauf anhand der Anzahl offener Kanäle und der gesamten Bitcoin-Kapazität.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts</context>
|
||||
<context context-type="linenumber">67</context>
|
||||
@@ -7836,6 +7906,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8e623d3cfecb7c560c114390db53c1f430ffd0de" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> confirmation</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> Bestätigung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -7845,6 +7916,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5b0a2631f0b7bc71aaec6aa6f01af21f9a80d4" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> confirmations</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> Bestätigungen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
@@ -7854,6 +7926,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a001c3d27d5fe4a7a362a6089b5b5020ef8c1c95" datatype="html">
|
||||
<source>Replaced</source>
|
||||
<target>Ersetzt</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@@ -7863,6 +7936,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="58fbcd58e305ab289b99fad67d223f3e83ddb755" datatype="html">
|
||||
<source>Removed</source>
|
||||
<target>Entfernt</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
@@ -7882,6 +7956,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="57a6f49237ac457ecc67fabdf1361a112ccdbf93" datatype="html">
|
||||
<source>sat/WU</source>
|
||||
<target>sat/WU</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/fee-rate/fee-rate.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -7891,6 +7966,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5ce2bda884ea801c34a1a6c23627d9a5e08f0a82" datatype="html">
|
||||
<source>My Account</source>
|
||||
<target>Mein Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -7903,6 +7979,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ba4f24bf9bf3dc4db3d6bc1b8b63339295f0b806" datatype="html">
|
||||
<source>Sign In</source>
|
||||
<target>Anmelden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
@@ -7915,6 +7992,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1773b1dad3e4b72bca77621985366b9e6a92ae28" datatype="html">
|
||||
<source>Explore</source>
|
||||
<target>Erkunden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
@@ -7923,6 +8001,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="52dd0ddd9ab3ea7caafcb4d6ac95e9459ef635f5" datatype="html">
|
||||
<source>Connect to our Nodes</source>
|
||||
<target>Verbinden mit unseren Nodes</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">46</context>
|
||||
@@ -7931,6 +8010,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1cd6dc07ed789f4013d299b031200224977cbb8b" datatype="html">
|
||||
<source>API Documentation</source>
|
||||
<target>API-Dokumentation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">47</context>
|
||||
@@ -7939,6 +8019,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="04dfb6eb5a67d7fa19fb24f0e50324ea63fd8f08" datatype="html">
|
||||
<source>Learn</source>
|
||||
<target>Lernen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
@@ -7947,6 +8028,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="14f76d294f3ae892e8033d60bb960701cafca66f" datatype="html">
|
||||
<source>What is a mempool?</source>
|
||||
<target>Was ist ein Mempool?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
@@ -7955,6 +8037,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8ac787087e3eec254d15a4e16492f8877107087b" datatype="html">
|
||||
<source>What is a block explorer?</source>
|
||||
<target>Was ist ein Block-Explorer?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -7963,6 +8046,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0ab3729578bb613995fc5c90c4d7aa45588dd2a1" datatype="html">
|
||||
<source>What is a mempool explorer?</source>
|
||||
<target>Was ist ein Mempool-Explorer?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
@@ -7971,6 +8055,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8fe988a9cb02c11f99631ca85721d34d67fc32ff" datatype="html">
|
||||
<source>Why isn't my transaction confirming?</source>
|
||||
<target>Warum wird meine Transaktion nicht bestätigt?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
@@ -7979,6 +8064,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="03f766a5a2abdbfbdcc2b6135691b9fb1f2ed530" datatype="html">
|
||||
<source>More FAQs »</source>
|
||||
<target>Weitere FAQs »</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">55</context>
|
||||
@@ -7987,6 +8073,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7a1c82a943fc99d3080aeffeeb7d21f0726ad8cc" datatype="html">
|
||||
<source>Networks</source>
|
||||
<target>Netzwerke</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
@@ -7995,6 +8082,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="f96488094a57809ea9bfe4a2f2bf91af66a0d0a3" datatype="html">
|
||||
<source>Mainnet Explorer</source>
|
||||
<target>Mainnet-Explorer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
@@ -8003,6 +8091,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a31347c0f3ec966c373229584cfb7bd6725a0e64" datatype="html">
|
||||
<source>Testnet Explorer</source>
|
||||
<target>Testnet-Explorer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">61</context>
|
||||
@@ -8011,6 +8100,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c9bf4b5d16994e42297cbe174e831a7edd9cfe72" datatype="html">
|
||||
<source>Signet Explorer</source>
|
||||
<target>Signet-Explorer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
@@ -8019,6 +8109,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c127ef3218deed36fb86af83def0b54846f92252" datatype="html">
|
||||
<source>Liquid Testnet Explorer</source>
|
||||
<target>Liquid-Testnet-Explorer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
@@ -8027,6 +8118,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3c07f1c84d76a9999153e87343fd642852bb6d34" datatype="html">
|
||||
<source>Liquid Explorer</source>
|
||||
<target>Liquid-Explorer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">64</context>
|
||||
@@ -8035,6 +8127,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="16e770142bcac84dce7dfb9840d11961ee87ae6c" datatype="html">
|
||||
<source>Bisq Explorer</source>
|
||||
<target>Bisq-Explorer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
@@ -8043,6 +8136,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="fefee13017c2b85143cd131ee253e327a14053a0" datatype="html">
|
||||
<source>Tools</source>
|
||||
<target>Werkzeuge</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
@@ -8051,6 +8145,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8c23995422ac012b80a2369a878b199c39271906" datatype="html">
|
||||
<source>Clock (Mined)</source>
|
||||
<target>Uhr (Mined)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">71</context>
|
||||
@@ -8059,6 +8154,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="9a91783e9c0f790ed49edae730f9156070ed9dd5" datatype="html">
|
||||
<source>Legal</source>
|
||||
<target>Rechtliches</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
@@ -8087,6 +8183,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="6a0a8485405b9b289101e52a46e282342c8dc9e0" datatype="html">
|
||||
<source>Trademark Policy</source>
|
||||
<target>Markenrichtlinie</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -8096,6 +8193,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="64dd13424d9486cf3d680d934987ec685bac0b3d" datatype="html">
|
||||
<source>This is a test network. Coins have no value.</source>
|
||||
<target>Dies ist ein Testnetzwerk. Coins haben keinen Wert.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/testnet-alert/testnet-alert.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ngb.progressbar.value" datatype="html">
|
||||
<source><x id="INTERPOLATION"/></source>
|
||||
<target><x id="INTERPOLATION"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">node_modules/src/ngb-config.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -66,6 +67,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ngb.carousel.slide-number" datatype="html">
|
||||
<source> Slide <x id="INTERPOLATION"/> of <x id="INTERPOLATION_1"/> </source>
|
||||
<target> Diapositive <x id="INTERPOLATION"/> de <x id="INTERPOLATION_1"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">node_modules/src/ngb-config.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -404,6 +406,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bisq.address" datatype="html">
|
||||
<source>See current balance, pending transactions, and history of confirmed transactions for BSQ address <x id="INTERPOLATION" equiv-text="this.addressString"/>.</source>
|
||||
<target>Consultez le solde actuel, les transactions en attente et l'historique des transactions confirmées pour l'adresse BSQ <x id="INTERPOLATION" equiv-text="this.addressString"/>.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-address/bisq-address.component.ts</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
@@ -500,6 +503,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bisq.block" datatype="html">
|
||||
<source>See all BSQ transactions in Bitcoin block <x id="BLOCK_HEIGHT" equiv-text="block.height"/> (block hash <x id="BLOCK_HASH" equiv-text="block.hash"/>).</source>
|
||||
<target>Voir toutes les transactions BSQ dans le bloc Bitcoin <x id="BLOCK_HEIGHT" equiv-text="block.height"/> (hachage de bloc <x id="BLOCK_HASH" equiv-text="block.hash"/>).</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-block/bisq-block.component.ts</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
@@ -627,6 +631,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bisq.blocks" datatype="html">
|
||||
<source>See a list of recent Bitcoin blocks with BSQ transactions, total BSQ sent per block, and more.</source>
|
||||
<target>Consultez une liste des blocs Bitcoin récents avec des transactions BSQ, le nombre total de BSQ envoyés par bloc, et plus encore.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-blocks/bisq-blocks.component.ts</context>
|
||||
<context context-type="linenumber">39</context>
|
||||
@@ -756,6 +761,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.bisq.markets" datatype="html">
|
||||
<source>Markets</source>
|
||||
<target>Marchés</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-dashboard/bisq-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
@@ -763,6 +769,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bisq.markets" datatype="html">
|
||||
<source>Explore the full Bitcoin ecosystem with The Mempool Open Source Project™. See Bisq market prices, trading activity, and more.</source>
|
||||
<target>Explorez l'intégralité de l'écosystème Bitcoin avec The Mempool Open Source Project™. Consultez les prix du marché Bisq, l’activité d'échange et bien plus encore.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-dashboard/bisq-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
@@ -848,6 +855,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.bisq.market" datatype="html">
|
||||
<source>Bisq market: <x id="PH" equiv-text="pairUpperCase"/></source>
|
||||
<target>Marché Bisq : <x id="PH" equiv-text="pairUpperCase"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-market/bisq-market.component.ts</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
@@ -855,6 +863,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bisq.market" datatype="html">
|
||||
<source>See price history, current buy/sell offers, and latest trades for the <x id="PH" equiv-text="pairUpperCase"/> market on Bisq.</source>
|
||||
<target>Consultez l'historique des prix, les offres d'achat/vente en cours et les dernières transactions du marché <x id="PH" equiv-text="pairUpperCase"/> sur Bisq.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-market/bisq-market.component.ts</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -990,6 +999,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bisq.stats" datatype="html">
|
||||
<source>See high-level stats on the BSQ economy: supply metrics, number of addresses, BSQ price, market cap, and more.</source>
|
||||
<target>Consultez des statistiques de haut niveau sur l'économie BSQ : mesures d'approvisionnement, nombre d'adresses, prix du BSQ, capitalisation boursière, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-stats/bisq-stats.component.ts</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -1169,6 +1179,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="d21fcec8ace7941d2bf7c822ce2003cdd9ecff43" datatype="html">
|
||||
<source>Fee per weight unit</source>
|
||||
<target>Tarif par unité de poids</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">68</context>
|
||||
@@ -1237,6 +1248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bisq.transaction" datatype="html">
|
||||
<source>See inputs, outputs, transaction type, burnt amount, and more for transaction with txid <x id="INTERPOLATION" equiv-text="this.txId"/>.</source>
|
||||
<target>Consultez les entrées, les sorties, le type de transaction, le montant brûlé et plus encore pour la transaction avec le txid <x id="INTERPOLATION" equiv-text="this.txId"/>.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.ts</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
@@ -1426,6 +1438,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bisq.transactions" datatype="html">
|
||||
<source>See recent BSQ transactions: amount, txid, associated Bitcoin block, transaction type, and more.</source>
|
||||
<target>Consultez les transactions BSQ récentes : montant, txid, bloc Bitcoin associé, type de transaction, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transactions/bisq-transactions.component.ts</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
@@ -1466,6 +1479,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="9bada74bc2b36480a6db8734d56a2b89135de590" datatype="html">
|
||||
<source>Become a Community Sponsor</source>
|
||||
<target>Devenez un sponsor communautaire</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/about/about.component.html</context>
|
||||
<context context-type="linenumber">39</context>
|
||||
@@ -1474,6 +1488,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bef4c03ebfa29b890665fbcf6bf097b9ae29a91e" datatype="html">
|
||||
<source>Become an Enterprise Sponsor</source>
|
||||
<target>Devenez sponsor d’entreprise</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/about/about.component.html</context>
|
||||
<context context-type="linenumber">46</context>
|
||||
@@ -1491,6 +1506,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="299789f4d4817ccf915f6a5b0e48c093b646b079" datatype="html">
|
||||
<source>Whale Sponsors</source>
|
||||
<target>Sponsors Whale</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/about/about.component.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
@@ -1499,6 +1515,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2dca632c813555d7153785d4b6d25cc0f04d6bcd" datatype="html">
|
||||
<source>Chad Sponsors</source>
|
||||
<target>Sponsors Chad</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/about/about.component.html</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
@@ -1507,6 +1524,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0a441237b27eaeacbeba376cabd33921fa4bb2d6" datatype="html">
|
||||
<source>OG Sponsors ❤️</source>
|
||||
<target>Sponsors OG ❤️</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/about/about.component.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
@@ -1589,6 +1607,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.about" datatype="html">
|
||||
<source>Learn more about The Mempool Open Source Project®: enterprise sponsors, individual sponsors, integrations, who contributes, FOSS licensing, and more.</source>
|
||||
<target>Apprenez-en davantage à propos de The Mempool Open Source Project® : sponsors d'entreprise, sponsors individuels, intégrations, qui contribue, licences FOSS, et bien plus encore.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/about/about.component.ts</context>
|
||||
<context context-type="linenumber">46</context>
|
||||
@@ -1819,6 +1838,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.address" datatype="html">
|
||||
<source>See mempool transactions, confirmed transactions, balance, and more for <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> address <x id="INTERPOLATION" equiv-text="this.addressString"/>.</source>
|
||||
<target>Consultez les transactions mempool, les transactions confirmées, le solde et bien plus encore pour l'adresse <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/> <x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> <x id="INTERPOLATION" equiv-text="this.addressString"/>.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/address/address-preview.component.ts</context>
|
||||
<context context-type="linenumber">72</context>
|
||||
@@ -2085,6 +2105,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
@@ -2110,6 +2134,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.liquid.assets" datatype="html">
|
||||
<source>Explore all the assets issued on the Liquid network like L-BTC, L-CAD, USDT, and more.</source>
|
||||
<target>Explorez tous les actifs émis sur le réseau Liquid comme L-BTC, L-CAD, USDT, et plus encore.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/assets/assets-nav/assets-nav.component.ts</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
@@ -2272,6 +2297,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.graphs.block-fee-rates" datatype="html">
|
||||
<source>See Bitcoin feerates visualized over time, including minimum and maximum feerates per block along with feerates at various percentiles.</source>
|
||||
<target>Consultez les tarifs Bitcoin visualisés au fil du temps, y compris les tarifs minimum et maximum par bloc ainsi que les tarifs à différents centiles.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-fee-rates-graph/block-fee-rates-graph.component.ts</context>
|
||||
<context context-type="linenumber">67</context>
|
||||
@@ -2328,6 +2354,7 @@
|
||||
</trans-unit>
|
||||
<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>
|
||||
<target>Consultez les frais de minage moyens gagnés par bloc Bitcoin visualisés en BTC et en USD au fil du temps.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-fees-graph/block-fees-graph.component.ts</context>
|
||||
<context context-type="linenumber">68</context>
|
||||
@@ -2371,6 +2398,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b1fa5b210c9670d49a6506f046d4a0c2797fd402" datatype="html">
|
||||
<source>Block Health</source>
|
||||
<target>Santé de bloc</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-health-graph/block-health-graph.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -2383,6 +2411,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="d7d5fcf50179ad70c938491c517efb82de2c8146" datatype="html">
|
||||
<source>Block Health</source>
|
||||
<target>Santé de bloc</target>
|
||||
<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>
|
||||
@@ -2390,6 +2419,7 @@
|
||||
</trans-unit>
|
||||
<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>
|
||||
<target>Voir la santé des blocs Bitcoin visualisée au fil du temps. La santé d'un bloc est une mesure du nombre de transactions attendues incluses dans un bloc réellement trouvé. Les transactions attendues sont déterminées à l'aide de la ré-implémentation par Mempool de l'algorithme de sélection de transactions de Bitcoin Core.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-health-graph/block-health-graph.component.ts</context>
|
||||
<context context-type="linenumber">64</context>
|
||||
@@ -2421,6 +2451,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2041675390931385838" datatype="html">
|
||||
<source>Health</source>
|
||||
<target>Santé</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-health-graph/block-health-graph.component.ts</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
@@ -2511,6 +2542,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a85400ca5aa86c938188f02b5fca2757d20b46ad" datatype="html">
|
||||
<source>Accelerated fee rate</source>
|
||||
<target>Tarif accéléré</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
@@ -2542,6 +2574,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13f5a75f3e01e5924e45052d2f336eda8bac37e8" datatype="html">
|
||||
<source>Weight</source>
|
||||
<target>Poids</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
@@ -2599,6 +2632,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="42795e8b4dc68e08fbf27cf2f7e724bbc2930610" datatype="html">
|
||||
<source>High sigop count</source>
|
||||
<target>Nombre élevé de sigops</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -2616,6 +2650,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c9b422e0850708663a9748e778a9d6feb4d6394e" datatype="html">
|
||||
<source>Recently CPFP'd</source>
|
||||
<target>Récemment CPFP</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
@@ -2633,6 +2668,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="136c04d97155209abbe3f2535bcf5cf32f91b465" datatype="html">
|
||||
<source>Conflicting</source>
|
||||
<target>Contradictoire</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||
<context context-type="linenumber">57</context>
|
||||
@@ -2641,6 +2677,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b484583f0ce10f3341ab36750d05271d9d22c9a1" datatype="html">
|
||||
<source>Accelerated</source>
|
||||
<target>Accéléré</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-overview-tooltip/block-overview-tooltip.component.html</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
@@ -2666,6 +2703,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.graphs.block-rewards" datatype="html">
|
||||
<source>See Bitcoin block rewards in BTC and USD visualized over time. Block rewards are the total funds miners earn from the block subsidy and fees.</source>
|
||||
<target>Consultez les récompenses des blocs Bitcoin en BTC et en USD visualisées au fil du temps. Les récompenses globales correspondent au total des fonds que les mineurs gagnent grâce à la récompense de bloc et aux frais.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-rewards-graph/block-rewards-graph.component.ts</context>
|
||||
<context context-type="linenumber">66</context>
|
||||
@@ -2690,6 +2728,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.graphs.block-sizes" datatype="html">
|
||||
<source>See Bitcoin block sizes (MB) and block weights (weight units) visualized over time.</source>
|
||||
<target>Consultez la taille des blocs Bitcoin (Mo) et le poids des blocs (unités de poids) visualisés au fil du temps.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-sizes-weights-graph/block-sizes-weights-graph.component.ts</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
@@ -2805,6 +2844,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.liquid.block" datatype="html">
|
||||
<source>See size, weight, fee range, included transactions, and more for Liquid<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> block <x id="BLOCK_HEIGHT" equiv-text="block.height"/> (<x id="BLOCK_ID" equiv-text="block.id"/>).</source>
|
||||
<target>Consultez la taille, le poids, la fourchette de frais, les transactions incluses et bien plus encore pour le bloc Liquid<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> <x id="BLOCK_HEIGHT" equiv-text="block.height"/> (<x id="BLOCK_ID" equiv-text="block.id"/>).</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-view/block-view.component.ts</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
@@ -2820,6 +2860,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.block" datatype="html">
|
||||
<source>See size, weight, fee range, included transactions, audit (expected v actual), and more for Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> block <x id="BLOCK_HEIGHT" equiv-text="block.height"/> (<x id="BLOCK_ID" equiv-text="block.id"/>).</source>
|
||||
<target>Consultez la taille, le poids, la fourchette de frais, les transactions incluses, l'audit (attendu et réel) et bien plus encore pour le bloc Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> <x id="BLOCK_HEIGHT" equiv-text="block.height"/> ( <x id="BLOCK_ID" equiv-text="block.id"/>).</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block-view/block-view.component.ts</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
@@ -2908,6 +2949,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e170a90ee0d3a604adf439a60c890caff9152466" datatype="html">
|
||||
<source>This block does not belong to the main chain, it has been replaced by:</source>
|
||||
<target>Ce bloc n'appartient pas à la chaîne principale, il a été remplacé par :</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
@@ -2943,6 +2985,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0dc973e4853621b49d9e31be902a0680334f632d" datatype="html">
|
||||
<source>Stale</source>
|
||||
<target>Vicié</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/block/block.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3408,6 +3451,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="m8a7b4bd44c0ac71b2e72de0398b303257f7d2f54" datatype="html">
|
||||
<source>Blocks</source>
|
||||
<target>Blocs</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.ts</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
@@ -3415,6 +3459,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.liquid.blocks" datatype="html">
|
||||
<source>See the most recent Liquid<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> blocks along with basic stats such as block height, block size, and more.</source>
|
||||
<target>Consultez les blocs Liquid<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> les plus récents ainsi que les statistiques de base telles que la hauteur et la taille des blocs, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.ts</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
@@ -3422,6 +3467,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.blocks" datatype="html">
|
||||
<source>See the most recent Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> blocks along with basic stats such as block height, block reward, block size, and more.</source>
|
||||
<target>Consultez les blocs Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> les plus récents ainsi que les statistiques de base telles que la hauteur du bloc, la récompense du bloc, la taille du bloc, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/blocks-list/blocks-list.component.ts</context>
|
||||
<context context-type="linenumber">64</context>
|
||||
@@ -3429,6 +3475,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="cf8caac4de0166eae6cd0fdfd010ee92b995cd96" datatype="html">
|
||||
<source>Calculator</source>
|
||||
<target>Calculatrice</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/calculator/calculator.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -3466,6 +3513,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b7dde2cf8ec2fcd328295c9c7fcc944c4d3720b6" datatype="html">
|
||||
<source>Memory Usage</source>
|
||||
<target>Utilisation de mémoire</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/clock/clock.component.html</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
@@ -3545,6 +3593,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1bb6965f8e1bbe40c076528ffd841da86f57f119" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
|
||||
<target><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>blocs<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
|
||||
<context context-type="linenumber">10,11</context>
|
||||
@@ -3848,6 +3897,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="93168b4de564d2c5d21d67cf2fb263f27b45e4c8" datatype="html">
|
||||
<source>WU/s</source>
|
||||
<target>UE/s</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/footer/footer.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -4068,6 +4118,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.graphs.hashrate" datatype="html">
|
||||
<source>See hashrate and difficulty for the Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.network)"/> network visualized over time.</source>
|
||||
<target>Consultez le taux de hachage et la difficulté du réseau Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.network)"/> visualisés au fil du temps.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/hashrate-chart/hashrate-chart.component.ts</context>
|
||||
<context context-type="linenumber">75</context>
|
||||
@@ -4175,6 +4226,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.mempool-block" datatype="html">
|
||||
<source>See stats for <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> transactions in the mempool: fee range, aggregate size, and more. Mempool blocks are updated in real-time as the network receives new transactions.</source>
|
||||
<target>Consultez les statistiques des transactions <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> dans la mempool: plage de frais, taille globale, etc. Les blocs mempool sont mis à jour en temps réel à mesure que le réseau reçoit de nouvelles transactions.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mempool-block/mempool-block.component.ts</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
@@ -4198,6 +4250,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8177873832400820695" datatype="html">
|
||||
<source>Count</source>
|
||||
<target>Compter</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mempool-graph/mempool-graph.component.ts</context>
|
||||
<context context-type="linenumber">325</context>
|
||||
@@ -4225,6 +4278,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="287d3301a32a65a1b31116bda5d3a6463158c42a" datatype="html">
|
||||
<source>Sign in</source>
|
||||
<target>Se connecter</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/menu/menu.component.html</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
@@ -4251,6 +4305,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="93ce500c36b94b52219495ae1491efc2fca40cb6" datatype="html">
|
||||
<source>Recent Blocks</source>
|
||||
<target>Blocs récents</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mining-dashboard/mining-dashboard.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -4276,6 +4331,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.mining.dashboard" datatype="html">
|
||||
<source>Get real-time Bitcoin mining stats like hashrate, difficulty adjustment, block rewards, pool dominance, and more.</source>
|
||||
<target>Obtenez des statistiques minières Bitcoin en temps réel telles que le taux de hachage, l'ajustement de la difficulté, les récompenses de bloc, la domination du pool, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mining-dashboard/mining-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
@@ -4292,6 +4348,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4e338e7daa64c7a074cee3824fbd7425e5b7c9a5" datatype="html">
|
||||
<source>Pools Luck</source>
|
||||
<target>Chance dans les piscines</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
@@ -4322,6 +4379,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ade0bf412a0fae1e4672505fc1fa79ade185db05" datatype="html">
|
||||
<source>Pools Count</source>
|
||||
<target>Nombre de piscines</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
@@ -4436,6 +4494,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5d680aaa8e24bb235cf4fbeff3df0bfc8e2f564e" datatype="html">
|
||||
<source>Empty Blocks</source>
|
||||
<target>Blocs vides</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
@@ -4461,6 +4520,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.graphs.pool-ranking" datatype="html">
|
||||
<source>See the top Bitcoin mining pools ranked by number of blocks mined, over your desired timeframe.</source>
|
||||
<target>Consultez les meilleurs pools de minage Bitcoin classés par nombre de blocs extraits, sur la période souhaitée.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
@@ -4550,6 +4610,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.mining.pool" datatype="html">
|
||||
<source>See mining pool stats for <x id="PH" equiv-text="poolStats.pool.name"/>: most recent mined blocks, hashrate over time, total block reward to date, known coinbase addresses, and more.</source>
|
||||
<target>Consultez les statistiques de la pool de minage <x id="PH" equiv-text="poolStats.pool.name"/> : les blocs extraits les plus récents, le taux de hachage au fil du temps, la récompense totale du bloc à ce jour, les adresses coinbase connues, et plus encore.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool/pool-preview.component.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
@@ -4616,6 +4677,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3dc78651b2810cbb6e830fe7e57499d8cf6a8e4d" datatype="html">
|
||||
<source>Blocks (24h)</source>
|
||||
<target>Blocs (24h)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
@@ -4730,6 +4792,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.push-tx" datatype="html">
|
||||
<source>Broadcast Transaction</source>
|
||||
<target>Transaction de diffusion</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
@@ -4737,6 +4800,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.push-tx" datatype="html">
|
||||
<source>Broadcast a transaction to the <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> network using the transaction's hash.</source>
|
||||
<target>Diffusez une transaction sur le réseau <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> en utilisant le hachage de la transaction.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.ts</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
@@ -4744,6 +4808,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e3d5a82750902f159122fcca487b07f1af3141f" datatype="html">
|
||||
<source>RBF Replacements</source>
|
||||
<target>Remplacements RBF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -4756,6 +4821,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8a9b3afe9486474f0d7767605fe99af99c8ea430" datatype="html">
|
||||
<source>Full RBF</source>
|
||||
<target>RBF complet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -4772,6 +4838,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c88914ee712e3ab5ad5f88de8a6ed12050919ccb" datatype="html">
|
||||
<source>There are no replacements in the mempool yet!</source>
|
||||
<target>Il n'y a pas encore de remplaçants dans le pool de mémoire !</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -4780,6 +4847,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.rbf-list" datatype="html">
|
||||
<source>See the most recent RBF replacements on the Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> network, updated in real-time.</source>
|
||||
<target>Découvrez les remplacements RBF les plus récents sur le réseau Bitcoin<x id="PH" equiv-text="seoDescriptionNetwork(this.stateService.network)"/>, mis à jour en temps réel.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.ts</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
@@ -4825,6 +4893,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="aa28c3afcb8b1a556fc1e1842e48a57f24fd643f" datatype="html">
|
||||
<source>Status</source>
|
||||
<target>Statut</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
@@ -4842,6 +4911,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="eb3b032a755fc367f7f6e957d0c7dc9d6db49464" datatype="html">
|
||||
<source>RBF</source>
|
||||
<target>FBR</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-timeline/rbf-timeline-tooltip.component.html</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
@@ -5061,6 +5131,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="d0e134a0886ae71207e912575d226525062b62f1" datatype="html">
|
||||
<source>Clock (Mempool)</source>
|
||||
<target>Horloge (Mempool)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
@@ -5113,6 +5184,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="68d44b7bd049ae93c2bc15973eb5266aec64693e" datatype="html">
|
||||
<source>Cap outliers</source>
|
||||
<target>Valeurs aberrantes du plafond</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">122</context>
|
||||
@@ -5121,6 +5193,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.graphs.mempool" datatype="html">
|
||||
<source>See mempool size (in MvB) and transactions per second (in vB/s) visualized over time.</source>
|
||||
<target>Voir la taille de la mempool (en MvB) et les transactions par seconde (en vB/s) visualisées au fil du temps.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.ts</context>
|
||||
<context context-type="linenumber">67</context>
|
||||
@@ -5128,6 +5201,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.tv" datatype="html">
|
||||
<source>See Bitcoin blocks and mempool congestion in real-time in a simplified format perfect for a TV.</source>
|
||||
<target>Visualisez les blocs Bitcoin et la congestion de la mempool en temps réel dans un format simplifié parfait pour une TV.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/television/television.component.ts</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
@@ -5340,6 +5414,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.transaction" datatype="html">
|
||||
<source>Get real-time status, addresses, fees, script info, and more for <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> transaction with txid {txid}.</source>
|
||||
<target>Obtenez le statut en temps réel, les adresses, les frais, les informations sur le script et bien plus encore pour cette transaction <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/>.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction-preview.component.ts</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
@@ -5381,6 +5456,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="913e89d2d1ae354079cccf48b3d3f4ebf2e74080" datatype="html">
|
||||
<source>Accelerate</source>
|
||||
<target>Accélérer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">123</context>
|
||||
@@ -5418,6 +5494,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="03721a62015a76e794be64ba2b7e053e801215ea" datatype="html">
|
||||
<source>RBF History</source>
|
||||
<target>Historique RBF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">218</context>
|
||||
@@ -5489,6 +5566,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a8a4dd861f790141e19f773153cf42b5d0b0e6b6" datatype="html">
|
||||
<source>Adjusted vsize</source>
|
||||
<target>Taille ajustée</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
@@ -5507,6 +5585,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3dd65e8fa7035988a691aadcb583862c2a9e336a" datatype="html">
|
||||
<source>Sigops</source>
|
||||
<target>Sigops</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">320</context>
|
||||
@@ -5534,6 +5613,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8b01e0411c7160bfee109e504c84ecee5079c326" datatype="html">
|
||||
<source>Accelerated fee rate</source>
|
||||
<target>Tarif accéléré</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">516</context>
|
||||
@@ -5889,6 +5969,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4fe744df6d36b5e9b0afab728b77fc635b99f040" datatype="html">
|
||||
<source>Recent Replacements</source>
|
||||
<target>Remplacements récents</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -5897,6 +5978,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="23c872b0336e20284724607f2887da39bd8142c3" datatype="html">
|
||||
<source>Previous fee</source>
|
||||
<target>Frais antérieurs</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
@@ -5905,6 +5987,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="df33bef035883b7afeb388977087f99ab5a54409" datatype="html">
|
||||
<source>New fee</source>
|
||||
<target>Nouveaux frais</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">87</context>
|
||||
@@ -5913,6 +5996,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="aa6ce7e6e6fe5cd080713965451f25bca15a2a25" datatype="html">
|
||||
<source>Recent Transactions</source>
|
||||
<target>Transactions récentes</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">153</context>
|
||||
@@ -5950,6 +6034,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="9dfdbeb922d811d7b7b3fecd48360a059e52aaba" datatype="html">
|
||||
<source>Incoming Transactions</source>
|
||||
<target>Transactions entrantes</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/dashboard/dashboard.component.html</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
@@ -5958,6 +6043,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="999bb1a0150c2815a6b4dd64a1850e763603e525" datatype="html">
|
||||
<source><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space mer"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> It cannot help you with retrieving funds, wallet issues, etc.<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/>For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/></source>
|
||||
<target><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space mer"/>mempool.space fournit simplement des données sur le réseau Bitcoin.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> Nous ne pouvons pas vous aider à récupérer des fonds, à résoudre des problèmes de portefeuille, etc.<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/>Pour toute demande de ce type, vous devez contacter l'entité qui a aidé à effectuer la transaction (logiciel de portefeuille, échange, etc.).<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="</p>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
|
||||
<context context-type="linenumber">15,16</context>
|
||||
@@ -6052,6 +6138,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.docs.faq" datatype="html">
|
||||
<source>FAQ</source>
|
||||
<target>FAQ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">45</context>
|
||||
@@ -6059,6 +6146,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.faq" datatype="html">
|
||||
<source>Get answers to common questions like: What is a mempool? Why isn't my transaction confirming? How can I run my own instance of The Mempool Open Source Project? And more.</source>
|
||||
<target>Obtenez des réponses aux questions courantes telles que : Qu’est-ce qu’une mempool ? Pourquoi ma transaction n'est-elle pas confirmée ? Comment puis-je utiliser ma propre instance du projet Open Source Mempool ? Et plus.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">46</context>
|
||||
@@ -6066,6 +6154,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.docs.rest" datatype="html">
|
||||
<source>REST API</source>
|
||||
<target>API REST</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">49</context>
|
||||
@@ -6073,6 +6162,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.rest-liquid" datatype="html">
|
||||
<source>Documentation for the liquid.network REST API service: get info on addresses, transactions, assets, blocks, and more.</source>
|
||||
<target>Documentation pour le service API REST liquid.network : obtenez des informations sur les adresses, les transactions, les actifs, les blocs, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
@@ -6080,6 +6170,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.rest-bisq" datatype="html">
|
||||
<source>Documentation for the bisq.markets REST API service: get info on recent trades, current offers, transactions, network state, and more.</source>
|
||||
<target>Documentation pour le service API REST bisq.markets : obtenez des informations sur les transactions récentes, les offres en cours, les transactions, l'état du réseau, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
@@ -6087,6 +6178,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.rest-bitcoin" datatype="html">
|
||||
<source>Documentation for the mempool.space REST API service: get info on addresses, transactions, blocks, fees, mining, the Lightning network, and more.</source>
|
||||
<target>Documentation pour le service API REST mempool.space : obtenez des informations sur les adresses, les transactions, les blocs, les frais, le minage, le réseau Lightning, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">55</context>
|
||||
@@ -6094,6 +6186,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.docs.websocket" datatype="html">
|
||||
<source>WebSocket API</source>
|
||||
<target>API WebSocket</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
@@ -6101,6 +6194,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.websocket-liquid" datatype="html">
|
||||
<source>Documentation for the liquid.network WebSocket API service: get real-time info on blocks, mempools, transactions, addresses, and more.</source>
|
||||
<target>Documentation pour le service API liquid.network WebSocket : obtenez des informations en temps réel sur les blocs, les pools de mémoire, les transactions, les adresses, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">61</context>
|
||||
@@ -6108,6 +6202,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.websocket-bitcoin" datatype="html">
|
||||
<source>Documentation for the mempool.space WebSocket API service: get real-time info on blocks, mempools, transactions, addresses, and more.</source>
|
||||
<target>Documentation pour le service API WebSocket mempool.space : obtenez des informations en temps réel sur les blocs, les pools de mémoire, les transactions, les adresses, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
@@ -6115,6 +6210,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.title.docs.electrum" datatype="html">
|
||||
<source>Electrum RPC</source>
|
||||
<target>Électrum RPC</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">67</context>
|
||||
@@ -6122,6 +6218,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.docs.electrumrpc" datatype="html">
|
||||
<source>Documentation for our Electrum RPC interface: get instant, convenient, and reliable access to an Esplora instance.</source>
|
||||
<target>Documentation pour notre interface Electrum RPC : obtenez un accès instantané, pratique et fiable à une instance Esplora.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/docs/docs.component.ts</context>
|
||||
<context context-type="linenumber">68</context>
|
||||
@@ -6434,6 +6531,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.channel" datatype="html">
|
||||
<source>Overview for Lightning channel <x id="PH" equiv-text="params.get('short_id')"/>. See channel capacity, the Lightning nodes involved, related on-chain transactions, and more.</source>
|
||||
<target>Présentation du canal Lightning <x id="PH" equiv-text="params.get('short_id')"/>. Consultez la capacité du canal, les nœuds Lightning impliqués, les transactions en chaîne associées, et bien plus encore.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-preview.component.ts</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
@@ -6932,6 +7030,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec42ed2d917189340598d7993c29b30c7fd32af4" datatype="html">
|
||||
<source>Connect</source>
|
||||
<target>Connecter</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/group/group.component.html</context>
|
||||
<context context-type="linenumber">73</context>
|
||||
@@ -6982,6 +7081,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="34e302a08660d9860dda71e3f350351d34bda498" datatype="html">
|
||||
<source>Penalties</source>
|
||||
<target>Pénalités</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/justice-list/justice-list.component.html</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -7059,6 +7159,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.dashboard" datatype="html">
|
||||
<source>Get stats on the Lightning network (aggregate capacity, connectivity, etc) and Lightning nodes (channels, liquidity, etc) and Lightning channels (status, fees, etc).</source>
|
||||
<target>Obtenez des statistiques sur le réseau Lightning (capacité globale, connectivité, etc.), les nœuds Lightning (canaux, liquidité, etc.) et les canaux Lightning (statut, frais, etc.).</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
@@ -7168,6 +7269,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.node" datatype="html">
|
||||
<source>Overview for the Lightning network node named <x id="PH" equiv-text="node.alias"/>. See channels, capacity, location, fee stats, and more.</source>
|
||||
<target>Présentation du nœud de réseau Lightning nommé <x id="PH" equiv-text="node.alias"/>. Consultez les chaînes, la capacité, l’emplacement, les statistiques de frais et bien plus encore.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node-preview.component.ts</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -7228,6 +7330,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a737eb6814b234b0fd00e81b645b95a396711f15" datatype="html">
|
||||
<source>Decoded</source>
|
||||
<target>Décodé</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
@@ -7366,6 +7469,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.node-map" datatype="html">
|
||||
<source>See the channels of non-Tor Lightning network nodes visualized on a world map. Hover/tap on points on the map for node names and details.</source>
|
||||
<target>Visualisez les canaux des nœuds du réseau non Tor Lightning visualisés sur une carte du monde. Passez la souris/appuyez sur des points sur la carte pour connaître les noms et les détails des nœuds.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
@@ -7390,6 +7494,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.node-channel-map" datatype="html">
|
||||
<source>See the locations of non-Tor Lightning network nodes visualized on a world map. Hover/tap on points on the map for node names and details.</source>
|
||||
<target>Consultez les emplacements des nœuds du réseau non Tor Lightning visualisés sur une carte du monde. Passez la souris/appuyez sur des points sur la carte pour connaître les noms et les détails des nœuds.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-map/nodes-map.component.ts</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
@@ -7397,6 +7502,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.nodes-network" datatype="html">
|
||||
<source>See the number of Lightning network nodes visualized over time by network: clearnet only (IPv4, IPv6), darknet (Tor, I2p, cjdns), and both.</source>
|
||||
<target>Consultez le nombre de nœuds de réseau Lightning visualisés au fil du temps par réseau : clearnet uniquement (IPv4, IPv6), darknet (Tor, I2p, cjdns) et les deux.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-networks-chart/nodes-networks-chart.component.ts</context>
|
||||
<context context-type="linenumber">68</context>
|
||||
@@ -7465,6 +7571,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.nodes-country-overview" datatype="html">
|
||||
<source>See a geographical breakdown of the Lightning network: how many Lightning nodes are hosted in countries around the world, aggregate BTC capacity for each country, and more.</source>
|
||||
<target>Consultez une répartition géographique du réseau Lightning : combien de nœuds Lightning sont hébergés dans les pays du monde, capacité BTC globale pour chaque pays, et plus encore.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.ts</context>
|
||||
<context context-type="linenumber">47</context>
|
||||
@@ -7535,6 +7642,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.nodes-country" datatype="html">
|
||||
<source>Explore all the Lightning nodes hosted in <x id="PH" equiv-text="response.country.en"/> and see an overview of each node's capacity, number of open channels, and more.</source>
|
||||
<target>Explorez tous les nœuds Lightning hébergés dans <x id="PH" equiv-text="response.country.en"/> et obtenez un aperçu de la capacité de chaque nœud, du nombre de canaux ouverts, et bien plus encore.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.ts</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
@@ -7685,6 +7793,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.nodes-isp" datatype="html">
|
||||
<source>Browse all Bitcoin Lightning nodes using the <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>] ISP and see aggregate stats like total number of nodes, total capacity, and more for the ISP.</source>
|
||||
<target>Parcourez tous les nœuds Bitcoin Lightning à l'aide du FAI <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>] et consultez les statistiques globales telles que le nombre total de nœuds, la capacité totale, et plus encore pour le FAI.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.ts</context>
|
||||
<context context-type="linenumber">45</context>
|
||||
@@ -7740,6 +7849,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.ranking.oldest" datatype="html">
|
||||
<source>See the oldest nodes on the Lightning network along with their capacity, number of channels, location, etc.</source>
|
||||
<target>Consultez les nœuds les plus anciens du réseau Lightning ainsi que leur capacité, leur nombre de canaux, leur emplacement, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
@@ -7747,6 +7857,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.ranking.liquidity" datatype="html">
|
||||
<source>See Lightning nodes with the most BTC liquidity deployed along with high-level stats like number of open channels, location, node age, and more.</source>
|
||||
<target>Consultez les nœuds Lightning avec le plus de liquidité BTC déployé ainsi que des statistiques de haut niveau telles que le nombre de canaux ouverts, l'emplacement, l'âge du nœud, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-ranking/top-nodes-per-capacity/top-nodes-per-capacity.component.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -7754,6 +7865,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.ranking.channels" datatype="html">
|
||||
<source>See Lightning nodes with the most channels open along with high-level stats like total node capacity, node age, and more.</source>
|
||||
<target>Consultez les nœuds Lightning avec le plus grand nombre de canaux ouverts, ainsi que des statistiques de haut niveau telles que la capacité totale des nœuds, l'âge des nœuds, etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-ranking/top-nodes-per-channels/top-nodes-per-channels.component.ts</context>
|
||||
<context context-type="linenumber">38</context>
|
||||
@@ -7778,6 +7890,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.rankings-dashboard" datatype="html">
|
||||
<source>See top the Lightning network nodes ranked by liquidity, connectivity, and age.</source>
|
||||
<target>Découvrez les meilleurs nœuds du réseau Lightning classés par liquidité, connectivité et âge.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
@@ -7785,6 +7898,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.stats-chart" datatype="html">
|
||||
<source>See the capacity of the Lightning network visualized over time in terms of the number of open channels and total bitcoin capacity.</source>
|
||||
<target>Visualisez la capacité du réseau Lightning au fil du temps en termes de nombre de canaux ouverts et de capacité totale de Bitcoin.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/statistics-chart/lightning-statistics-chart.component.ts</context>
|
||||
<context context-type="linenumber">67</context>
|
||||
@@ -7792,6 +7906,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8e623d3cfecb7c560c114390db53c1f430ffd0de" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> confirmation</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>confirmation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -7801,6 +7916,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5b0a2631f0b7bc71aaec6aa6f01af21f9a80d4" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> confirmations</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> confirmations</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
@@ -7810,6 +7926,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a001c3d27d5fe4a7a362a6089b5b5020ef8c1c95" datatype="html">
|
||||
<source>Replaced</source>
|
||||
<target>Remplacée</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@@ -7819,6 +7936,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="58fbcd58e305ab289b99fad67d223f3e83ddb755" datatype="html">
|
||||
<source>Removed</source>
|
||||
<target>Supprimée</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/confirmations/confirmations.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
@@ -7838,6 +7956,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="57a6f49237ac457ecc67fabdf1361a112ccdbf93" datatype="html">
|
||||
<source>sat/WU</source>
|
||||
<target>sat/WU</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/fee-rate/fee-rate.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -7847,6 +7966,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5ce2bda884ea801c34a1a6c23627d9a5e08f0a82" datatype="html">
|
||||
<source>My Account</source>
|
||||
<target>Mon compte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -7859,6 +7979,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ba4f24bf9bf3dc4db3d6bc1b8b63339295f0b806" datatype="html">
|
||||
<source>Sign In</source>
|
||||
<target>Se connecter</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
@@ -7871,6 +7992,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1773b1dad3e4b72bca77621985366b9e6a92ae28" datatype="html">
|
||||
<source>Explore</source>
|
||||
<target>Explorer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
@@ -7879,6 +8001,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="52dd0ddd9ab3ea7caafcb4d6ac95e9459ef635f5" datatype="html">
|
||||
<source>Connect to our Nodes</source>
|
||||
<target>Connectez-vous à nos nœuds</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">46</context>
|
||||
@@ -7887,6 +8010,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1cd6dc07ed789f4013d299b031200224977cbb8b" datatype="html">
|
||||
<source>API Documentation</source>
|
||||
<target>Documentation API</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">47</context>
|
||||
@@ -7895,6 +8019,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="04dfb6eb5a67d7fa19fb24f0e50324ea63fd8f08" datatype="html">
|
||||
<source>Learn</source>
|
||||
<target>Apprendre</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
@@ -7903,6 +8028,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="14f76d294f3ae892e8033d60bb960701cafca66f" datatype="html">
|
||||
<source>What is a mempool?</source>
|
||||
<target>Qu'est-ce qu'une mempool ?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
@@ -7911,6 +8037,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8ac787087e3eec254d15a4e16492f8877107087b" datatype="html">
|
||||
<source>What is a block explorer?</source>
|
||||
<target>Qu'est-ce qu'un explorateur de blocs ?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -7919,6 +8046,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0ab3729578bb613995fc5c90c4d7aa45588dd2a1" datatype="html">
|
||||
<source>What is a mempool explorer?</source>
|
||||
<target>Qu’est-ce qu’un explorateur mempool ?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
@@ -7927,6 +8055,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8fe988a9cb02c11f99631ca85721d34d67fc32ff" datatype="html">
|
||||
<source>Why isn't my transaction confirming?</source>
|
||||
<target>Pourquoi ma transaction n'est-elle pas confirmée ?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
@@ -7935,6 +8064,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="03f766a5a2abdbfbdcc2b6135691b9fb1f2ed530" datatype="html">
|
||||
<source>More FAQs »</source>
|
||||
<target>Voir plus »</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">55</context>
|
||||
@@ -7943,6 +8073,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7a1c82a943fc99d3080aeffeeb7d21f0726ad8cc" datatype="html">
|
||||
<source>Networks</source>
|
||||
<target>Réseaux</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
@@ -7951,6 +8082,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="f96488094a57809ea9bfe4a2f2bf91af66a0d0a3" datatype="html">
|
||||
<source>Mainnet Explorer</source>
|
||||
<target>Explorateur Mainnet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
@@ -7959,6 +8091,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a31347c0f3ec966c373229584cfb7bd6725a0e64" datatype="html">
|
||||
<source>Testnet Explorer</source>
|
||||
<target>Explorateur Testnet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">61</context>
|
||||
@@ -7967,6 +8100,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c9bf4b5d16994e42297cbe174e831a7edd9cfe72" datatype="html">
|
||||
<source>Signet Explorer</source>
|
||||
<target>Explorateur Signet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
@@ -7975,6 +8109,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c127ef3218deed36fb86af83def0b54846f92252" datatype="html">
|
||||
<source>Liquid Testnet Explorer</source>
|
||||
<target>Explorateur Liquid Testnet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
@@ -7983,6 +8118,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3c07f1c84d76a9999153e87343fd642852bb6d34" datatype="html">
|
||||
<source>Liquid Explorer</source>
|
||||
<target>Explorateur Liquid</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">64</context>
|
||||
@@ -7991,6 +8127,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="16e770142bcac84dce7dfb9840d11961ee87ae6c" datatype="html">
|
||||
<source>Bisq Explorer</source>
|
||||
<target>Explorateur Bisq</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
@@ -7999,6 +8136,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="fefee13017c2b85143cd131ee253e327a14053a0" datatype="html">
|
||||
<source>Tools</source>
|
||||
<target>Outils</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
@@ -8007,6 +8145,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8c23995422ac012b80a2369a878b199c39271906" datatype="html">
|
||||
<source>Clock (Mined)</source>
|
||||
<target>Horloge (trouvé)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">71</context>
|
||||
@@ -8015,6 +8154,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="9a91783e9c0f790ed49edae730f9156070ed9dd5" datatype="html">
|
||||
<source>Legal</source>
|
||||
<target>Légal</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
@@ -8043,6 +8183,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="6a0a8485405b9b289101e52a46e282342c8dc9e0" datatype="html">
|
||||
<source>Trademark Policy</source>
|
||||
<target>Politique en matière de marques</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/global-footer/global-footer.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -8052,6 +8193,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="64dd13424d9486cf3d680d934987ec685bac0b3d" datatype="html">
|
||||
<source>This is a test network. Coins have no value.</source>
|
||||
<target>Il s'agit d'un réseau de test. Les tokens n'ont aucune valeur.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/components/testnet-alert/testnet-alert.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2072,6 +2072,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -1949,6 +1949,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2082,6 +2082,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2105,6 +2105,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -2085,6 +2085,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -1698,7 +1698,7 @@
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.address" datatype="html">
|
||||
<source>See mempool transactions, confirmed transactions, balance, and more for <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> address <x id="INTERPOLATION" equiv-text="this.addressString"/>.</source>
|
||||
<source>See mempool transactions, confirmed transactions, balance, and more for <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/> <x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> address <x id="INTERPOLATION" equiv-text="this.addressString"/>.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/address/address-preview.component.ts</context>
|
||||
<context context-type="linenumber">72</context>
|
||||
@@ -2256,7 +2256,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
<context context-type="linenumber">216</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-map/nodes-map.component.ts</context>
|
||||
@@ -3774,7 +3774,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">lightning.nodes-channels-world-map</note>
|
||||
</trans-unit>
|
||||
@@ -5024,7 +5024,7 @@
|
||||
<note priority="1" from="description">transactions-list.coinbase</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.bitcoin.transaction" datatype="html">
|
||||
<source>Get real-time status, addresses, fees, script info, and more for <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> transaction with txid {txid}.</source>
|
||||
<source>Get real-time status, addresses, fees, script info, and more for <x id="PH" equiv-text="this.stateService.network==='liquid'||this.stateService.network==='liquidtestnet'?'Liquid':'Bitcoin'"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> transaction with txid <x id="PH_2" equiv-text="this.txId"/>.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction-preview.component.ts</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
@@ -6629,7 +6629,7 @@
|
||||
<note priority="1" from="description">lightning.connectivity-ranking</note>
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.dashboard" datatype="html">
|
||||
<source>Get stats on the Lightning network (aggregate capacity, connectivity, etc) and Lightning nodes (channels, liquidity, etc) and Lightning channels (status, fees, etc).</source>
|
||||
<source>Get stats on the Lightning network (aggregate capacity, connectivity, etc), Lightning nodes (channels, liquidity, etc) and Lightning channels (status, fees, etc).</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
@@ -6886,7 +6886,7 @@
|
||||
<source>(Tor nodes excluded)</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.html</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-map/nodes-map.component.html</context>
|
||||
@@ -6906,21 +6906,21 @@
|
||||
<source>Lightning Nodes Channels World Map</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context>
|
||||
<context context-type="linenumber">68</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.node-map" datatype="html">
|
||||
<source>See the channels of non-Tor Lightning network nodes visualized on a world map. Hover/tap on points on the map for node names and details.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4390631969351833104" datatype="html">
|
||||
<source>No geolocation data available</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-channels-map/nodes-channels-map.component.ts</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a4d393ee035f4225083c22cc3909b26a05a87528" datatype="html">
|
||||
@@ -7289,7 +7289,7 @@
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="meta.description.lightning.rankings-dashboard" datatype="html">
|
||||
<source>See top the Lightning network nodes ranked by liquidity, connectivity, and age.</source>
|
||||
<source>See the top Lightning network nodes ranked by liquidity, connectivity, and age.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-rankings-dashboard/nodes-rankings-dashboard.component.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ngb.progressbar.value" datatype="html">
|
||||
<source><x id="INTERPOLATION"/></source>
|
||||
<target><x id="INTERPOLATION"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">node_modules/src/ngb-config.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -66,6 +67,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ngb.carousel.slide-number" datatype="html">
|
||||
<source> Slide <x id="INTERPOLATION"/> of <x id="INTERPOLATION_1"/> </source>
|
||||
<target> Slide <x id="INTERPOLATION"/> of <x id="INTERPOLATION_1"/> </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">node_modules/src/ngb-config.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -2085,6 +2087,10 @@
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">463</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/rbf-list/rbf-list.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/statistics/statistics.component.html</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
|
||||
@@ -606,7 +606,6 @@ html:lang(ru) .card-title {
|
||||
}
|
||||
|
||||
.tx-wrapper-tooltip-chart-advanced {
|
||||
width: 140px;
|
||||
.indicator-container {
|
||||
.indicator {
|
||||
margin-right: 5px;
|
||||
|
||||
@@ -105,5 +105,9 @@
|
||||
"node205.tk7.mempool.space",
|
||||
"node206.tk7.mempool.space"
|
||||
]
|
||||
},
|
||||
"MEMPOOL_SERVICES": {
|
||||
"API": "https://mempool.space/api/v1/services",
|
||||
"ACCELERATIONS": true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user