Compare commits

...
Author SHA1 Message Date
Mononaut 43f50b2c89 Add accelerated badge to projected block tooltip 2023-12-07 11:22:31 +00:00
wiz 4169e1053f Merge pull request #4482 from mempool/mononaut/fix-negative-accel-rate
Fix negative accelerated fee rate, simplify fee rate table
2023-12-07 01:50:12 +09:00
wiz a46e779d0c Merge branch 'master' into mononaut/fix-negative-accel-rate 2023-12-06 23:56:12 +09:00
Mononaut 51102004bb Fix negative accelerated fee rate, simplify fee rate table 2023-12-06 14:50:26 +00:00
wiz 08e9142d57 Merge pull request #4481 from mempool/mononaut/improve-acceleration-tracking
Improve acceleration tracking
2023-12-06 22:42:00 +09:00
Mononaut b7c4cd43fc Better error handling for accelerations update request 2023-12-06 12:09:46 +00:00
Mononaut 08a35b85a8 Fix current accelerations update race condition 2023-12-06 12:09:28 +00:00
wiz 51a28b2e01 Merge pull request #4480 from mempool/mononaut/mined-acceleration-info
Show accelerated fee rates for mined transactions
2023-12-05 23:00:15 +09:00
Mononaut 966adf5963 Show accelerated fee rates on mined tx pages 2023-12-05 13:48:38 +00:00
wiz ae7b17c4fd Merge pull request #4478 from mempool/mononaut/accelerated-badge
Accelerated tx audit badge
2023-12-05 17:36:52 +09:00
Mononaut 5b4bc9fe19 Accelerated tx audit badge 2023-12-05 08:33:57 +00:00
wiz 89eb7ec90b ops: Enable accelerator in production config 2023-12-05 05:29:18 +09:00
wiz a646c5f22f Merge pull request #4390 from ncois/tooltip-overflow-bug
Fix tooltip overflow by increasing width
2023-12-04 23:44:44 +09:00
wiz c345f2164b Merge pull request #4462 from ncois/search-block-datetime
Search a block by date and timestamp
2023-12-04 23:44:19 +09:00
wiz 9791ee018d Merge pull request #4466 from ncois/pool-hashrate-format
Pool chart hashrate format in power of ten
2023-12-04 23:44:06 +09:00
wiz 7c83b85e3e Merge pull request #4476 from mempool/nymkappa/fix-waitlist-message
[accel preview] only show waitlist message if logged in
2023-12-04 23:43:50 +09:00
nymkappa 63942af720 wait list -> waitlist @softsimon 2023-12-04 23:30:22 +09:00
nymkappa 4da5910e0b [accel preview] only show waitlist message if logged in 2023-12-04 23:23:51 +09:00
wiz 025788e78c Merge pull request #4471 from mempool/nymkappa/fix-one-bug-add-two-more
Various fixes and improvements
2023-12-04 22:51:41 +09:00
nymkappa 88a9524064 Merge branch 'master' into pool-hashrate-format 2023-12-04 21:34:43 +09:00
ncois c216e849e6 Add more precision to hashrate graphs 2023-12-04 09:56:56 +01:00
nymkappa c86768edc9 [about] fix merge conflict #4425 2023-12-04 16:59:29 +09:00
nymkappa 4283d30ce0 Merge branch 'master' into search-block-datetime 2023-12-04 13:09:58 +09:00
nymkappa e2eeaebfc7 Merge branch 'master' into nymkappa/fix-one-bug-add-two-more 2023-12-04 10:47:49 +09:00
softsimon 90d87aaaca Merge pull request #4472 from mempool/simon/upgrading-fontawesome
Upgrading fontawesome
2023-12-03 18:17:33 +09:00
softsimon b2e9275ad9 Upgrading fontawesome 2023-12-03 17:34:31 +09:00
nymkappa 181e816c1a Merge branch 'nymkappa/about-page-empty-anchor' into nymkappa/fix-one-bug-add-two-more 2023-12-03 15:17:04 +09:00
softsimon 758ca4e93a Merge pull request #4233 from mempool/hunicus/enterprise-abs
Make enterprise links not relative
2023-12-03 14:09:25 +09:00
softsimon a33f915c7a Merge pull request #4438 from mempool/mononaut/refactor-difficulty-reindexing
Refactor difficulty reindexing to process blocks in height order
2023-12-03 13:15:01 +09:00
softsimon 75c6d006ff Merge pull request #4433 from mempool/mononaut/dismiss-acceleration-preview
Make the acceleration preview dismissable
2023-12-02 18:19:46 +09:00
softsimon 1fe983a299 Merge pull request #4468 from mempool/mononaut/fix-liquid-fee-rounding
Fix liquid recommended fee rounding
2023-12-02 15:05:13 +09:00
Mononaut cd8e3e2604 Fix liquid fee rounding 2023-12-02 03:20:09 +00:00
wiz dfc4309d9e Merge pull request #4465 from mempool/mononaut/fix-liquid-minfee
Fix Liquid minfee defaults
2023-12-01 21:52:25 +09:00
ncois 0a70273456 Pool chart: show power of ten of hashrate on desktop 2023-12-01 12:57:30 +01:00
softsimon 62c9a88235 Merge pull request #4448 from mempool/nymkappa/accel-preview-logged-in
[accelerator] show wait list message in preview when logged in with no access
2023-12-01 18:37:05 +09:00
Mononaut 851e07b50b Fix liquid minfee defaults 2023-12-01 18:12:59 +09:00
wiz e1bbec074b Merge pull request #4457 from mempool/mononaut/matomo-path
matomo path
2023-12-01 17:54:06 +09:00
Mononaut 9fcafeeeb0 Switch to toggle-style acceleration dismiss button 2023-12-01 14:55:19 +09:00
Mononaut e986cfd30b Make the acceleration preview dismissable 2023-12-01 14:21:05 +09:00
ncois 2584a1f2b0 Add date and timestamp search option 2023-11-30 20:05:25 +01:00
softsimon 1c92394563 Merge pull request #4449 from mempool/nymkappa/translation-typo
Fix some SEO strings
2023-11-30 18:33:05 +09:00
softsimon 36398ca57a Updating messages.xlf 2023-11-30 18:29:06 +09:00
softsimon 6b978f9262 Merge pull request #3706 from mempool/mononaut/reconnect-dead-websocket
reconnect websocket after closed by server
2023-11-30 18:26:18 +09:00
softsimon 12cf130c00 Merge branch 'master' into mononaut/reconnect-dead-websocket 2023-11-30 17:57:19 +09:00
softsimon ba933a81c3 Merge pull request #3704 from mempool/mononaut/handle-websocket-errors
Disconnect websocket clients on error
2023-11-30 17:56:58 +09:00
Mononaut 7de7081d67 matomo path 2023-11-30 17:35:26 +09:00
nymkappa 6b933c202f Update nodes-rankings-dashboard.component.ts 2023-11-30 17:22:22 +09:00
softsimon f1525b7df5 Merge pull request #4445 from mempool/dependabot/npm_and_yarn/frontend/fortawesome/fontawesome-svg-core-6.5.0
Bump @fortawesome/fontawesome-svg-core from 6.4.0 to 6.5.0 in /frontend
2023-11-30 17:05:19 +09:00
wiz 62c4af1a0c Merge pull request #4455 from mempool/mononaut/fix-matomo-fix
Fix matomo again
2023-11-30 15:49:00 +09:00
Mononaut 4ac98bc483 Fix matomo again 2023-11-30 15:46:58 +09:00
softsimon ed07daebca Merge branch 'master' into mononaut/handle-websocket-errors 2023-11-30 15:18:16 +09:00
wiz f8bbf7783c Merge pull request #4443 from mempool/nymkappa/debug-add-context
[log] create more general error
2023-11-30 14:53:51 +09:00
softsimon fac2fab16a Merge pull request #4437 from mempool/simon/remove-audit-beta
Remove block audit beta-tag
2023-11-30 14:50:57 +09:00
wiz 76de4e34d8 Merge pull request #4425 from mempool/mononaut/fix-matomo
fix matomo bug
2023-11-30 14:40:26 +09:00
softsimon 6109f25aa9 Merge pull request #4452 from ncois/tx-ui-overflow
Fix overflow on transaction page
2023-11-30 14:36:15 +09:00
softsimon 86303175e9 Merge pull request #4451 from ncois/format-difficulty-chart
Difficulty adjustment chart: format the hashrate and difficulty
2023-11-30 14:27:39 +09:00
nymkappa a670131f40 Merge branch 'master' into tooltip-overflow-bug 2023-11-30 11:54:16 +09:00
ncois c5ce3167f3 Fix overflow on transaction page 2023-11-29 15:27:45 +01:00
ncois 9913254a5c Difficulty value: remove rounding 2023-11-29 11:16:48 +01:00
ncois fbb4ba39c2 Mining chart: show hashrate power of ten on desktop 2023-11-29 11:08:38 +01:00
nymkappa 22bf0fe928 Re-apply fix from https://github.com/mempool/mempool/pull/4419/files#diff-9daf43654b4e0bb2c925b6396c6e3a7e1b117bd854fe9c46290f025bfe0a762eR285 2023-11-29 18:03:23 +09:00
nymkappa 3b30765070 Revert unnecessary changes 2023-11-29 18:00:07 +09:00
nymkappa 63fde7d0b6 Merge branch 'master' into nymkappa/about-page-sponsors-component 2023-11-29 17:57:54 +09:00
softsimon cf338970bf Merge pull request #4450 from mempool/translations_frontend-src-locale-messages-xlf--master_fr
Updates for file frontend/src/locale/messages.xlf in fr
2023-11-29 16:35:27 +09:00
Mononaut 08e046ea2a fix matomo bug 2023-11-29 16:17:07 +09:00
transifex-integration[bot] 5697710c23 Translate frontend/src/locale/messages.xlf in fr
100% reviewed source file: 'frontend/src/locale/messages.xlf'
on 'fr'.
2023-11-29 07:00:03 +00:00
nymkappa b9e050e24b Fix small typo in lightning node ranking dashboard seo 2023-11-29 15:59:15 +09:00
nymkappa ff819673e5 Fix "and" chain in lightning dashboard seo 2023-11-29 15:56:35 +09:00
nymkappa 2e2801a4ab Add missing txid in seo tx preview 2023-11-29 15:51:35 +09:00
nymkappa f52b17ca7a Add missing space in seo address preview 2023-11-29 15:28:14 +09:00
softsimon 3d25235705 Merge pull request #4439 from mempool/mononaut/fix-ln-search-suggestions
Fix spurious ln channel typeahead matches
2023-11-29 15:24:34 +09:00
nymkappa 2cbc6783a4 [accelerator] show wait list message in preview when logged in with no access 2023-11-29 15:02:48 +09:00
dependabot[bot] 406bf5d3b7 Bump @fortawesome/fontawesome-svg-core from 6.4.0 to 6.5.0 in /frontend
Bumps [@fortawesome/fontawesome-svg-core](https://github.com/FortAwesome/Font-Awesome) from 6.4.0 to 6.5.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.4.0...6.5.0)

---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-svg-core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 02:48:50 +00:00
nymkappa f5bf883de9 [about] fix auto scroll to chad/whale 2023-11-28 18:05:18 +09:00
nymkappa c06cade1ca [log] create more general error 2023-11-28 17:13:52 +09:00
softsimon c23a872887 Updating german i18n 2023-11-28 14:42:25 +09:00
Mononaut 0b449347c1 Fix spurious ln channel typeahead matches 2023-11-26 09:22:44 +00:00
softsimon d2da81e039 Remove block audit beta-tag 2023-11-26 17:21:13 +09:00
Mononaut 66d88abdc5 Refactor difficulty reindexing to process blocks in height order 2023-11-26 08:17:30 +00:00
Mononaut 85c9c79699 reconnect websocket after closed by server 2023-11-25 11:25:07 +00:00
Mononaut 652100f774 More verbose websocket error logs 2023-11-25 09:02:27 +00:00
Mononaut 0f04f751e1 Disconnect websocket clients on error 2023-11-25 08:27:17 +00:00
ncois 643402c046 Merge branch 'mempool:master' into tooltip-overflow-bug 2023-11-24 13:28:42 +01:00
nymkappa 3103ef15e5 [about page] move CTA sponsors box into a sub component 2023-11-24 11:13:12 +09:00
ncois f57436f511 Merge branch 'master' into tooltip-overflow-bug 2023-11-22 12:14:03 +01:00
ncois 1eb425897e Adjust the width of the incoming tx tooltip for 2h timeframe 2023-11-19 16:42:09 +01:00
ncois 9d0bfdfa88 Increase tooltip width in mempool graphs 2023-11-17 13:47:28 +01:00
hunicus d630e7217a Make enterprise links not relative 2023-09-06 01:42:19 +09:00
78 changed files with 1679 additions and 685 deletions

No files matched your search

+7 -1
View File
@@ -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;
+7 -2
View File
@@ -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;
}
}
+5 -7
View File
@@ -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 } = {};
+50 -27
View File
@@ -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();
+10 -4
View File
@@ -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 [];
}
+8 -3
View File
@@ -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();
}
});
});
+3 -1
View File
@@ -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();
+1 -1
View File
@@ -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));
+823 -485
View File
File diff suppressed because it is too large. Load diff
+4 -4
View File
@@ -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"
+7 -7
View File
@@ -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)
@@ -43,6 +43,10 @@
<td class="td-width" i18n="transaction.weight|Transaction Weight">Weight</td>
<td [innerHTML]="'&lrm;' + ((vsize * 4) | wuBytes: 2)"></td>
</tr>
<tr *ngIf="!auditEnabled && (this.acceleration || (tx && tx.acc))">
<td></td>
<td><span class="badge badge-accelerated" i18n="transaction.audit.accelerated">Accelerated</span></td>
</tr>
<tr *ngIf="auditEnabled && tx && tx.status && tx.status.length">
<td class="td-width" i18n="transaction.audit-status">Audit status</td>
<ng-container [ngSwitch]="tx?.status">
@@ -55,7 +59,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>&nbsp;&nbsp;<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">
&nbsp;
<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">
&nbsp;
<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,
@@ -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>
@@ -288,7 +288,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>
@@ -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());
}
}
+13 -1
View File
@@ -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 } });
}
}
+62 -11
View File
@@ -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;
}
}
+13 -8
View File
@@ -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.`,
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+98
View File
@@ -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="&lt;span class=&quot;shared-block&quot;&gt;blocks&lt;/span&gt;&lt;/ng-template&gt; &lt;ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source>
<target><x id="INTERPOLATION" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;blocks&lt;/span&gt;&lt;/ng-template&gt; &lt;ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/>Blöcke<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></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="&lt;/b&gt;"/> It cannot help you with retrieving funds, wallet issues, etc.<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="&lt;/p&gt;"/><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/>For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="&lt;/p&gt;"/></source>
<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="&lt;/b&gt;"/> Es kann Ihnen beim Abrufen von Geldern, bei Problemen mit der Wallet usw. nicht helfen.<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="&lt;/p&gt;"/><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/>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="&lt;/p&gt;"/></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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+142
View File
@@ -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="&lt;span class=&quot;shared-block&quot;&gt;blocks&lt;/span&gt;&lt;/ng-template&gt; &lt;ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source>
<target><x id="INTERPOLATION" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;blocks&lt;/span&gt;&lt;/ng-template&gt; &lt;ng-"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;shared-block&quot;&gt;"/>blocs<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></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="&lt;/b&gt;"/> It cannot help you with retrieving funds, wallet issues, etc.<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="&lt;/p&gt;"/><x id="START_PARAGRAPH" ctype="x-p" equiv-text="For any such requ"/>For any such requests, you need to get in touch with the entity that helped make the transaction (wallet software, exchange company, etc).<x id="CLOSE_PARAGRAPH" ctype="x-p" equiv-text="&lt;/p&gt;"/></source>
<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="&lt;/b&gt;"/> 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="&lt;/p&gt;"/><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="&lt;/p&gt;"/></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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+4
View File
@@ -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>
+10 -10
View File
@@ -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===&apos;liquid&apos;||this.stateService.network===&apos;liquidtestnet&apos;?&apos;Liquid&apos;:&apos;Bitcoin&apos;"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> 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===&apos;liquid&apos;||this.stateService.network===&apos;liquidtestnet&apos;?&apos;Liquid&apos;:&apos;Bitcoin&apos;"/> <x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> 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===&apos;liquid&apos;||this.stateService.network===&apos;liquidtestnet&apos;?&apos;Liquid&apos;:&apos;Bitcoin&apos;"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> 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===&apos;liquid&apos;||this.stateService.network===&apos;liquidtestnet&apos;?&apos;Liquid&apos;:&apos;Bitcoin&apos;"/><x id="PH_1" equiv-text="seoDescriptionNetwork(this.stateService.network)"/> 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>
+6
View File
@@ -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>
-1
View File
@@ -606,7 +606,6 @@ html:lang(ru) .card-title {
}
.tx-wrapper-tooltip-chart-advanced {
width: 140px;
.indicator-container {
.indicator {
margin-right: 5px;
+4
View File
@@ -105,5 +105,9 @@
"node205.tk7.mempool.space",
"node206.tk7.mempool.space"
]
},
"MEMPOOL_SERVICES": {
"API": "https://mempool.space/api/v1/services",
"ACCELERATIONS": true
}
}