Compare commits
142 Commits
v2.5.0-bet
...
v2.5.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
249b015299 | ||
|
|
4950ac9df4 | ||
|
|
19670dd79d | ||
|
|
8cd69deb1b | ||
|
|
57eddac7f0 | ||
|
|
af115b49aa | ||
|
|
332f9a2f5e | ||
|
|
34eef3553b | ||
|
|
9e4ce42b6a | ||
|
|
4c4a91ae95 | ||
|
|
93d46d5c5b | ||
|
|
8788d4f898 | ||
|
|
e28650c46c | ||
|
|
855c11f02c | ||
|
|
3f8e91bd46 | ||
|
|
6722e45109 | ||
|
|
414383638d | ||
|
|
2575b79c05 | ||
|
|
c7cab4c877 | ||
|
|
85c2f0ba30 | ||
|
|
edfbede704 | ||
|
|
5f60cb821a | ||
|
|
8486c1117d | ||
|
|
61f24562fd | ||
|
|
28de93d0ff | ||
|
|
1fd85b729d | ||
|
|
5681ae3f5c | ||
|
|
9d9e0976ae | ||
|
|
6180837636 | ||
|
|
17beaf7d4f | ||
|
|
ce8f471b27 | ||
|
|
b3e36fdd99 | ||
|
|
f971ddf1fa | ||
|
|
c0c37922c3 | ||
|
|
1eb9e58331 | ||
|
|
f8a35a110c | ||
|
|
c4d13fb5b7 | ||
|
|
53a44853b3 | ||
|
|
29aa3617d8 | ||
|
|
addf3e2521 | ||
|
|
5826f8fa1e | ||
|
|
965d89fd91 | ||
|
|
ed69591bcf | ||
|
|
f1f6c48128 | ||
|
|
f8bd062aa2 | ||
|
|
77835bcb9d | ||
|
|
bf5821c8c8 | ||
|
|
a2e23014f4 | ||
|
|
811c14a6bd | ||
|
|
a34d87148b | ||
|
|
a45a8db479 | ||
|
|
672f71c515 | ||
|
|
2c16bbb0e9 | ||
|
|
63f7709e82 | ||
|
|
15b13ef4a4 | ||
|
|
75303c7a34 | ||
|
|
1a6048f0ab | ||
|
|
ae6a408c05 | ||
|
|
1015cbfa94 | ||
|
|
876feef53f | ||
|
|
f5f0329d39 | ||
|
|
80a7b6d8d5 | ||
|
|
f72e17c12e | ||
|
|
f570b2762f | ||
|
|
e2fda99578 | ||
|
|
d7d45146c8 | ||
|
|
45dbc6c6f6 | ||
|
|
d76e3a5939 | ||
|
|
cb8fdb5e8d | ||
|
|
d337bf3ee2 | ||
|
|
758e4d4f4c | ||
|
|
cd2bda4b49 | ||
|
|
493ea0641d | ||
|
|
ca1b6553c9 | ||
|
|
d479715d8e | ||
|
|
e3109a8fec | ||
|
|
e6bc5bef33 | ||
|
|
d82a7169b7 | ||
|
|
ba48b6f7ce | ||
|
|
8e1cf997f7 | ||
|
|
70d8548c92 | ||
|
|
cce7dd917f | ||
|
|
3dafb284a9 | ||
|
|
6a599a9a30 | ||
|
|
74fb292633 | ||
|
|
c6e063ea2f | ||
|
|
81d563381a | ||
|
|
870e895144 | ||
|
|
343d1345e2 | ||
|
|
517cf613c1 | ||
|
|
d54bcc898b | ||
|
|
704e1741ed | ||
|
|
ad5ce6dba4 | ||
|
|
1ed20a95df | ||
|
|
1718ddd4c3 | ||
|
|
32c2db2153 | ||
|
|
0abb9cbb7c | ||
|
|
e2e71c7a46 | ||
|
|
e27bdd3e2b | ||
|
|
5839ed428e | ||
|
|
af6d115dbb | ||
|
|
194968d16f | ||
|
|
30686bd322 | ||
|
|
175c645777 | ||
|
|
587a259843 | ||
|
|
64749ca726 | ||
|
|
8f2493dadb | ||
|
|
7d8ea075d9 | ||
|
|
328327e5dc | ||
|
|
fd1816d451 | ||
|
|
72f25b873c | ||
|
|
994656953c | ||
|
|
ed46232b83 | ||
|
|
dca18a1c66 | ||
|
|
c291ee1789 | ||
|
|
caf15351f7 | ||
|
|
6be9f23790 | ||
|
|
adc51f6217 | ||
|
|
ec8a46ede6 | ||
|
|
b78fdf5a23 | ||
|
|
7c2493f3fa | ||
|
|
b0a0ad11b4 | ||
|
|
377f71eb52 | ||
|
|
eefe343973 | ||
|
|
41a6674fad | ||
|
|
effba92729 | ||
|
|
c9f4bdda17 | ||
|
|
b5c2073414 | ||
|
|
25aacb5046 | ||
|
|
c24724dcdf | ||
|
|
64ab14f995 | ||
|
|
4a64c0dfa5 | ||
|
|
0ebe0a5dc9 | ||
|
|
c683a52a01 | ||
|
|
5fbdd0bb2a | ||
|
|
599881366b | ||
|
|
4c294b010d | ||
|
|
418c32e334 | ||
|
|
12b605e5cc | ||
|
|
cdfde05452 | ||
|
|
7bf8fea9f2 | ||
|
|
a5dd141934 |
26
.github/workflows/get_image_digest.yml
vendored
Normal file
26
.github/workflows/get_image_digest.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
name: 'Print images digest'
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: 'Image Version'
|
||||
required: false
|
||||
default: 'latest'
|
||||
type: string
|
||||
jobs:
|
||||
print-images-sha:
|
||||
runs-on: 'ubuntu-latest'
|
||||
name: Print digest for images
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: digest
|
||||
|
||||
- name: Run script
|
||||
working-directory: digest
|
||||
run: |
|
||||
sh ./docker/scripts/get_image_digest.sh $VERSION
|
||||
env:
|
||||
VERSION: ${{ github.event.inputs.version }}
|
||||
@@ -1,13 +1,13 @@
|
||||
# The Mempool Open Source Project™ [](https://dashboard.cypress.io/projects/ry4br7/runs)
|
||||
|
||||
https://user-images.githubusercontent.com/232186/222445818-234aa6c9-c233-4c52-b3f0-e32b8232893b.mp4
|
||||
https://user-images.githubusercontent.com/93150691/226236121-375ea64f-b4a1-4cc0-8fad-a6fb33226840.mp4
|
||||
|
||||
<br>
|
||||
|
||||
Mempool is the fully-featured mempool visualizer, explorer, and API service running at [mempool.space](https://mempool.space/).
|
||||
|
||||
It is an open-source project developed and operated for the benefit of the Bitcoin community, with a focus on the emerging transaction fee market that is evolving Bitcoin into a multi-layer ecosystem.
|
||||
|
||||

|
||||
|
||||
# Installation Methods
|
||||
|
||||
Mempool can be self-hosted on a wide variety of your own hardware, ranging from a simple one-click installation on a Raspberry Pi full-node distro all the way to a robust production instance on a powerful FreeBSD server.
|
||||
|
||||
@@ -27,13 +27,15 @@
|
||||
"AUDIT": false,
|
||||
"ADVANCED_GBT_AUDIT": false,
|
||||
"ADVANCED_GBT_MEMPOOL": false,
|
||||
"CPFP_INDEXING": false
|
||||
"CPFP_INDEXING": false,
|
||||
"DISK_CACHE_BLOCK_INTERVAL": 6
|
||||
},
|
||||
"CORE_RPC": {
|
||||
"HOST": "127.0.0.1",
|
||||
"PORT": 8332,
|
||||
"USERNAME": "mempool",
|
||||
"PASSWORD": "mempool"
|
||||
"PASSWORD": "mempool",
|
||||
"TIMEOUT": 60000
|
||||
},
|
||||
"ELECTRUM": {
|
||||
"HOST": "127.0.0.1",
|
||||
@@ -47,7 +49,8 @@
|
||||
"HOST": "127.0.0.1",
|
||||
"PORT": 8332,
|
||||
"USERNAME": "mempool",
|
||||
"PASSWORD": "mempool"
|
||||
"PASSWORD": "mempool",
|
||||
"TIMEOUT": 60000
|
||||
},
|
||||
"DATABASE": {
|
||||
"ENABLED": true,
|
||||
@@ -91,7 +94,8 @@
|
||||
"LND": {
|
||||
"TLS_CERT_PATH": "tls.cert",
|
||||
"MACAROON_PATH": "readonly.macaroon",
|
||||
"REST_API_URL": "https://localhost:8080"
|
||||
"REST_API_URL": "https://localhost:8080",
|
||||
"TIMEOUT": 10000
|
||||
},
|
||||
"CLIGHTNING": {
|
||||
"SOCKET": "lightning-rpc"
|
||||
|
||||
18
backend/package-lock.json
generated
18
backend/package-lock.json
generated
@@ -1,16 +1,16 @@
|
||||
{
|
||||
"name": "mempool-backend",
|
||||
"version": "2.5.0-dev",
|
||||
"version": "2.5.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "mempool-backend",
|
||||
"version": "2.5.0-dev",
|
||||
"version": "2.5.1",
|
||||
"license": "GNU Affero General Public License v3.0",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.20.12",
|
||||
"@mempool/electrum-client": "^1.1.7",
|
||||
"@mempool/electrum-client": "1.1.9",
|
||||
"@types/node": "^16.18.11",
|
||||
"axios": "~0.27.2",
|
||||
"bitcoinjs-lib": "~6.1.0",
|
||||
@@ -1272,9 +1272,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@mempool/electrum-client": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/@mempool/electrum-client/-/electrum-client-1.1.8.tgz",
|
||||
"integrity": "sha512-6YP6UJstlk2GgC++NwPJthMPvLozyEMlqPq7RjvIWSwrL0smvM0Q0PAOohwZJtJFDWspuEUtNRF7aHQT2ztnYg==",
|
||||
"version": "1.1.9",
|
||||
"resolved": "https://registry.npmjs.org/@mempool/electrum-client/-/electrum-client-1.1.9.tgz",
|
||||
"integrity": "sha512-mlvPiCzUlaETpYW3i6V87A24jjMYgsebaXtUo3WQyyLnYUuxs0KiXQ2mnKh3h15j8Xg/hfxeGIi+5OC9u0nftQ==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
@@ -7248,9 +7248,9 @@
|
||||
}
|
||||
},
|
||||
"@mempool/electrum-client": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/@mempool/electrum-client/-/electrum-client-1.1.8.tgz",
|
||||
"integrity": "sha512-6YP6UJstlk2GgC++NwPJthMPvLozyEMlqPq7RjvIWSwrL0smvM0Q0PAOohwZJtJFDWspuEUtNRF7aHQT2ztnYg=="
|
||||
"version": "1.1.9",
|
||||
"resolved": "https://registry.npmjs.org/@mempool/electrum-client/-/electrum-client-1.1.9.tgz",
|
||||
"integrity": "sha512-mlvPiCzUlaETpYW3i6V87A24jjMYgsebaXtUo3WQyyLnYUuxs0KiXQ2mnKh3h15j8Xg/hfxeGIi+5OC9u0nftQ=="
|
||||
},
|
||||
"@nodelib/fs.scandir": {
|
||||
"version": "2.1.5",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mempool-backend",
|
||||
"version": "2.5.0-dev",
|
||||
"version": "2.5.1",
|
||||
"description": "Bitcoin mempool visualizer and blockchain explorer backend",
|
||||
"license": "GNU Affero General Public License v3.0",
|
||||
"homepage": "https://mempool.space",
|
||||
@@ -35,7 +35,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.20.12",
|
||||
"@mempool/electrum-client": "^1.1.7",
|
||||
"@mempool/electrum-client": "1.1.9",
|
||||
"@types/node": "^16.18.11",
|
||||
"axios": "~0.27.2",
|
||||
"bitcoinjs-lib": "~6.1.0",
|
||||
|
||||
@@ -28,13 +28,15 @@
|
||||
"ADVANCED_GBT_AUDIT": "__MEMPOOL_ADVANCED_GBT_AUDIT__",
|
||||
"ADVANCED_GBT_MEMPOOL": "__MEMPOOL_ADVANCED_GBT_MEMPOOL__",
|
||||
"CPFP_INDEXING": "__MEMPOOL_CPFP_INDEXING__",
|
||||
"MAX_BLOCKS_BULK_QUERY": "__MEMPOOL_MAX_BLOCKS_BULK_QUERY__"
|
||||
"MAX_BLOCKS_BULK_QUERY": "__MEMPOOL_MAX_BLOCKS_BULK_QUERY__",
|
||||
"DISK_CACHE_BLOCK_INTERVAL": "__MEMPOOL_DISK_CACHE_BLOCK_INTERVAL__"
|
||||
},
|
||||
"CORE_RPC": {
|
||||
"HOST": "__CORE_RPC_HOST__",
|
||||
"PORT": 15,
|
||||
"USERNAME": "__CORE_RPC_USERNAME__",
|
||||
"PASSWORD": "__CORE_RPC_PASSWORD__"
|
||||
"PASSWORD": "__CORE_RPC_PASSWORD__",
|
||||
"TIMEOUT": "__CORE_RPC_TIMEOUT__"
|
||||
},
|
||||
"ELECTRUM": {
|
||||
"HOST": "__ELECTRUM_HOST__",
|
||||
@@ -48,7 +50,8 @@
|
||||
"HOST": "__SECOND_CORE_RPC_HOST__",
|
||||
"PORT": 17,
|
||||
"USERNAME": "__SECOND_CORE_RPC_USERNAME__",
|
||||
"PASSWORD": "__SECOND_CORE_RPC_PASSWORD__"
|
||||
"PASSWORD": "__SECOND_CORE_RPC_PASSWORD__",
|
||||
"TIMEOUT": "__SECOND_CORE_RPC_TIMEOUT__"
|
||||
},
|
||||
"DATABASE": {
|
||||
"ENABLED": false,
|
||||
@@ -107,7 +110,8 @@
|
||||
"LND": {
|
||||
"TLS_CERT_PATH": "",
|
||||
"MACAROON_PATH": "",
|
||||
"REST_API_URL": "https://localhost:8080"
|
||||
"REST_API_URL": "https://localhost:8080",
|
||||
"TIMEOUT": 10000
|
||||
},
|
||||
"CLIGHTNING": {
|
||||
"SOCKET": "__CLIGHTNING_SOCKET__"
|
||||
|
||||
@@ -42,6 +42,7 @@ describe('Mempool Backend Config', () => {
|
||||
ADVANCED_GBT_MEMPOOL: false,
|
||||
CPFP_INDEXING: false,
|
||||
MAX_BLOCKS_BULK_QUERY: 0,
|
||||
DISK_CACHE_BLOCK_INTERVAL: 6,
|
||||
});
|
||||
|
||||
expect(config.ELECTRUM).toStrictEqual({ HOST: '127.0.0.1', PORT: 3306, TLS_ENABLED: true });
|
||||
@@ -52,14 +53,16 @@ describe('Mempool Backend Config', () => {
|
||||
HOST: '127.0.0.1',
|
||||
PORT: 8332,
|
||||
USERNAME: 'mempool',
|
||||
PASSWORD: 'mempool'
|
||||
PASSWORD: 'mempool',
|
||||
TIMEOUT: 60000
|
||||
});
|
||||
|
||||
expect(config.SECOND_CORE_RPC).toStrictEqual({
|
||||
HOST: '127.0.0.1',
|
||||
PORT: 8332,
|
||||
USERNAME: 'mempool',
|
||||
PASSWORD: 'mempool'
|
||||
PASSWORD: 'mempool',
|
||||
TIMEOUT: 60000
|
||||
});
|
||||
|
||||
expect(config.DATABASE).toStrictEqual({
|
||||
@@ -106,6 +109,13 @@ describe('Mempool Backend Config', () => {
|
||||
BISQ_URL: 'https://bisq.markets/api',
|
||||
BISQ_ONION: 'http://bisqmktse2cabavbr2xjq7xw3h6g5ottemo5rolfcwt6aly6tp5fdryd.onion/api'
|
||||
});
|
||||
|
||||
expect(config.MAXMIND).toStrictEqual({
|
||||
ENABLED: false,
|
||||
GEOLITE2_CITY: '/usr/local/share/GeoIP/GeoLite2-City.mmdb',
|
||||
GEOLITE2_ASN: '/usr/local/share/GeoIP/GeoLite2-ASN.mmdb',
|
||||
GEOIP2_ISP: '/usr/local/share/GeoIP/GeoIP2-ISP.mmdb'
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import config from '../config';
|
||||
import logger from '../logger';
|
||||
import { TransactionExtended, MempoolBlockWithTransactions } from '../mempool.interfaces';
|
||||
|
||||
const PROPAGATION_MARGIN = 180; // in seconds, time since a transaction is first seen after which it is assumed to have propagated to all miners
|
||||
|
||||
class Audit {
|
||||
auditBlock(transactions: TransactionExtended[], projectedBlocks: MempoolBlockWithTransactions[], mempool: { [txId: string]: TransactionExtended })
|
||||
: { censored: string[], added: string[], fresh: string[], score: number } {
|
||||
: { censored: string[], added: string[], fresh: string[], score: number, similarity: number } {
|
||||
if (!projectedBlocks?.[0]?.transactionIds || !mempool) {
|
||||
return { censored: [], added: [], fresh: [], score: 0 };
|
||||
return { censored: [], added: [], fresh: [], score: 0, similarity: 1 };
|
||||
}
|
||||
|
||||
const matches: string[] = []; // present in both mined block and template
|
||||
@@ -16,6 +17,8 @@ class Audit {
|
||||
const isCensored = {}; // missing, without excuse
|
||||
const isDisplaced = {};
|
||||
let displacedWeight = 0;
|
||||
let matchedWeight = 0;
|
||||
let projectedWeight = 0;
|
||||
|
||||
const inBlock = {};
|
||||
const inTemplate = {};
|
||||
@@ -37,12 +40,19 @@ class Audit {
|
||||
} else {
|
||||
isCensored[txid] = true;
|
||||
}
|
||||
displacedWeight += mempool[txid].weight;
|
||||
displacedWeight += mempool[txid]?.weight || 0;
|
||||
} else {
|
||||
matchedWeight += mempool[txid]?.weight || 0;
|
||||
}
|
||||
projectedWeight += mempool[txid]?.weight || 0;
|
||||
inTemplate[txid] = true;
|
||||
}
|
||||
|
||||
displacedWeight += (4000 - transactions[0].weight);
|
||||
if (transactions[0]) {
|
||||
displacedWeight += (4000 - transactions[0].weight);
|
||||
projectedWeight += transactions[0].weight;
|
||||
matchedWeight += transactions[0].weight;
|
||||
}
|
||||
|
||||
// we can expect an honest miner to include 'displaced' transactions in place of recent arrivals and censored txs
|
||||
// these displaced transactions should occupy the first N weight units of the next projected block
|
||||
@@ -52,19 +62,24 @@ class Audit {
|
||||
let failures = 0;
|
||||
while (projectedBlocks[1] && index < projectedBlocks[1].transactionIds.length && failures < 500) {
|
||||
const txid = projectedBlocks[1].transactionIds[index];
|
||||
const fits = (mempool[txid].weight - displacedWeightRemaining) < 4000;
|
||||
const feeMatches = mempool[txid].effectiveFeePerVsize >= lastFeeRate;
|
||||
if (fits || feeMatches) {
|
||||
isDisplaced[txid] = true;
|
||||
if (fits) {
|
||||
lastFeeRate = Math.min(lastFeeRate, mempool[txid].effectiveFeePerVsize);
|
||||
const tx = mempool[txid];
|
||||
if (tx) {
|
||||
const fits = (tx.weight - displacedWeightRemaining) < 4000;
|
||||
const feeMatches = tx.effectiveFeePerVsize >= lastFeeRate;
|
||||
if (fits || feeMatches) {
|
||||
isDisplaced[txid] = true;
|
||||
if (fits) {
|
||||
lastFeeRate = Math.min(lastFeeRate, tx.effectiveFeePerVsize);
|
||||
}
|
||||
if (tx.firstSeen == null || (now - (tx?.firstSeen || 0)) > PROPAGATION_MARGIN) {
|
||||
displacedWeightRemaining -= tx.weight;
|
||||
}
|
||||
failures = 0;
|
||||
} else {
|
||||
failures++;
|
||||
}
|
||||
if (mempool[txid].firstSeen == null || (now - (mempool[txid]?.firstSeen || 0)) > PROPAGATION_MARGIN) {
|
||||
displacedWeightRemaining -= mempool[txid].weight;
|
||||
}
|
||||
failures = 0;
|
||||
} else {
|
||||
failures++;
|
||||
logger.warn('projected transaction missing from mempool cache');
|
||||
}
|
||||
index++;
|
||||
}
|
||||
@@ -101,32 +116,39 @@ class Audit {
|
||||
index = projectedBlocks[0].transactionIds.length - 1;
|
||||
while (index >= 0) {
|
||||
const txid = projectedBlocks[0].transactionIds[index];
|
||||
if (overflowWeightRemaining > 0) {
|
||||
if (isCensored[txid]) {
|
||||
delete isCensored[txid];
|
||||
}
|
||||
if (mempool[txid].effectiveFeePerVsize > maxOverflowRate) {
|
||||
maxOverflowRate = mempool[txid].effectiveFeePerVsize;
|
||||
rateThreshold = (Math.ceil(maxOverflowRate * 100) / 100) + 0.005;
|
||||
}
|
||||
} else if (mempool[txid].effectiveFeePerVsize <= rateThreshold) { // tolerance of 0.01 sat/vb + rounding
|
||||
if (isCensored[txid]) {
|
||||
delete isCensored[txid];
|
||||
const tx = mempool[txid];
|
||||
if (tx) {
|
||||
if (overflowWeightRemaining > 0) {
|
||||
if (isCensored[txid]) {
|
||||
delete isCensored[txid];
|
||||
}
|
||||
if (tx.effectiveFeePerVsize > maxOverflowRate) {
|
||||
maxOverflowRate = tx.effectiveFeePerVsize;
|
||||
rateThreshold = (Math.ceil(maxOverflowRate * 100) / 100) + 0.005;
|
||||
}
|
||||
} else if (tx.effectiveFeePerVsize <= rateThreshold) { // tolerance of 0.01 sat/vb + rounding
|
||||
if (isCensored[txid]) {
|
||||
delete isCensored[txid];
|
||||
}
|
||||
}
|
||||
overflowWeightRemaining -= (mempool[txid]?.weight || 0);
|
||||
} else {
|
||||
logger.warn('projected transaction missing from mempool cache');
|
||||
}
|
||||
overflowWeightRemaining -= (mempool[txid]?.weight || 0);
|
||||
index--;
|
||||
}
|
||||
|
||||
const numCensored = Object.keys(isCensored).length;
|
||||
const numMatches = matches.length - 1; // adjust for coinbase tx
|
||||
const score = numMatches > 0 ? (numMatches / (numMatches + numCensored)) : 0;
|
||||
const similarity = projectedWeight ? matchedWeight / projectedWeight : 1;
|
||||
|
||||
return {
|
||||
censored: Object.keys(isCensored),
|
||||
added,
|
||||
fresh,
|
||||
score
|
||||
score,
|
||||
similarity,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ const nodeRpcCredentials: BitcoinRpcCredentials = {
|
||||
port: config.CORE_RPC.PORT,
|
||||
user: config.CORE_RPC.USERNAME,
|
||||
pass: config.CORE_RPC.PASSWORD,
|
||||
timeout: 60000,
|
||||
timeout: config.CORE_RPC.TIMEOUT,
|
||||
};
|
||||
|
||||
export default new bitcoin.Client(nodeRpcCredentials);
|
||||
|
||||
@@ -7,7 +7,7 @@ const nodeRpcCredentials: BitcoinRpcCredentials = {
|
||||
port: config.SECOND_CORE_RPC.PORT,
|
||||
user: config.SECOND_CORE_RPC.USERNAME,
|
||||
pass: config.SECOND_CORE_RPC.PASSWORD,
|
||||
timeout: 60000,
|
||||
timeout: config.SECOND_CORE_RPC.TIMEOUT,
|
||||
};
|
||||
|
||||
export default new bitcoin.Client(nodeRpcCredentials);
|
||||
|
||||
@@ -16,7 +16,7 @@ class BitcoindElectrsApi extends BitcoinApi implements AbstractBitcoinApi {
|
||||
super(bitcoinClient);
|
||||
|
||||
const electrumConfig = { client: 'mempool-v2', version: '1.4' };
|
||||
const electrumPersistencePolicy = { retryPeriod: 10000, maxRetry: 1000, callback: null };
|
||||
const electrumPersistencePolicy = { retryPeriod: 1000, maxRetry: Number.MAX_SAFE_INTEGER, callback: null };
|
||||
|
||||
const electrumCallbacks = {
|
||||
onConnect: (client, versionInfo) => { logger.info(`Connected to Electrum Server at ${config.ELECTRUM.HOST}:${config.ELECTRUM.PORT} (${JSON.stringify(versionInfo)})`); },
|
||||
|
||||
@@ -143,7 +143,10 @@ class Blocks {
|
||||
* @returns BlockSummary
|
||||
*/
|
||||
public summarizeBlock(block: IBitcoinApi.VerboseBlock): BlockSummary {
|
||||
const stripped = block.tx.map((tx) => {
|
||||
if (Common.isLiquid()) {
|
||||
block = this.convertLiquidFees(block);
|
||||
}
|
||||
const stripped = block.tx.map((tx: IBitcoinApi.VerboseTransaction) => {
|
||||
return {
|
||||
txid: tx.txid,
|
||||
vsize: tx.weight / 4,
|
||||
@@ -158,6 +161,13 @@ class Blocks {
|
||||
};
|
||||
}
|
||||
|
||||
private convertLiquidFees(block: IBitcoinApi.VerboseBlock): IBitcoinApi.VerboseBlock {
|
||||
block.tx.forEach(tx => {
|
||||
tx.fee = Object.values(tx.fee || {}).reduce((total, output) => total + output, 0);
|
||||
});
|
||||
return block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a block with additional data (reward, coinbase, fees...)
|
||||
* @param block
|
||||
@@ -548,7 +558,7 @@ class Blocks {
|
||||
}
|
||||
|
||||
while (this.currentBlockHeight < blockHeightTip) {
|
||||
if (this.currentBlockHeight < blockHeightTip - config.MEMPOOL.INITIAL_BLOCKS_AMOUNT) {
|
||||
if (this.currentBlockHeight === 0) {
|
||||
this.currentBlockHeight = blockHeightTip;
|
||||
} else {
|
||||
this.currentBlockHeight++;
|
||||
@@ -641,7 +651,7 @@ class Blocks {
|
||||
if (this.newBlockCallbacks.length) {
|
||||
this.newBlockCallbacks.forEach((cb) => cb(blockExtended, txIds, transactions));
|
||||
}
|
||||
if (!memPool.hasPriority() && (block.height % 6 === 0)) {
|
||||
if (!memPool.hasPriority() && (block.height % config.MEMPOOL.DISK_CACHE_BLOCK_INTERVAL === 0)) {
|
||||
diskCache.$saveCacheToDisk();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { CpfpInfo, TransactionExtended, TransactionStripped } from '../mempool.interfaces';
|
||||
import { CpfpInfo, MempoolBlockWithTransactions, TransactionExtended, TransactionStripped } from '../mempool.interfaces';
|
||||
import config from '../config';
|
||||
import { NodeSocket } from '../repositories/NodesSocketsRepository';
|
||||
import { isIP } from 'net';
|
||||
@@ -164,6 +164,30 @@ export class Common {
|
||||
return parents;
|
||||
}
|
||||
|
||||
// calculates the ratio of matched transactions to projected transactions by weight
|
||||
static getSimilarity(projectedBlock: MempoolBlockWithTransactions, transactions: TransactionExtended[]): number {
|
||||
let matchedWeight = 0;
|
||||
let projectedWeight = 0;
|
||||
const inBlock = {};
|
||||
|
||||
for (const tx of transactions) {
|
||||
inBlock[tx.txid] = tx;
|
||||
}
|
||||
|
||||
// look for transactions that were expected in the template, but missing from the mined block
|
||||
for (const tx of projectedBlock.transactions) {
|
||||
if (inBlock[tx.txid]) {
|
||||
matchedWeight += tx.vsize * 4;
|
||||
}
|
||||
projectedWeight += tx.vsize * 4;
|
||||
}
|
||||
|
||||
projectedWeight += transactions[0].weight;
|
||||
matchedWeight += transactions[0].weight;
|
||||
|
||||
return projectedWeight ? matchedWeight / projectedWeight : 1;
|
||||
}
|
||||
|
||||
static getSqlInterval(interval: string | null): string | null {
|
||||
switch (interval) {
|
||||
case '24h': return '1 DAY';
|
||||
|
||||
@@ -7,7 +7,7 @@ import cpfpRepository from '../repositories/CpfpRepository';
|
||||
import { RowDataPacket } from 'mysql2';
|
||||
|
||||
class DatabaseMigration {
|
||||
private static currentVersion = 58;
|
||||
private static currentVersion = 59;
|
||||
private queryTimeout = 3600_000;
|
||||
private statisticsAddedIndexed = false;
|
||||
private uniqueLogs: string[] = [];
|
||||
@@ -497,6 +497,7 @@ class DatabaseMigration {
|
||||
this.uniqueLog(logger.notice, this.blocksTruncatedMessage);
|
||||
await this.$executeQuery('DELETE FROM `pools`');
|
||||
await this.$executeQuery('ALTER TABLE pools AUTO_INCREMENT = 1');
|
||||
await this.$executeQuery(`UPDATE state SET string = NULL WHERE name = 'pools_json_sha'`);
|
||||
this.uniqueLog(logger.notice, '`pools` table has been truncated`');
|
||||
await this.updateToSchemaVersion(56);
|
||||
}
|
||||
@@ -510,6 +511,11 @@ class DatabaseMigration {
|
||||
// We only run some migration queries for this version
|
||||
await this.updateToSchemaVersion(58);
|
||||
}
|
||||
|
||||
if (databaseSchemaVersion < 59 && (config.MEMPOOL.NETWORK === 'signet' || config.MEMPOOL.NETWORK === 'testnet')) {
|
||||
// https://github.com/mempool/mempool/issues/3360
|
||||
await this.$executeQuery(`TRUNCATE prices`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,12 +24,11 @@ export function calcDifficultyAdjustment(
|
||||
network: string,
|
||||
latestBlockTimestamp: number,
|
||||
): DifficultyAdjustment {
|
||||
const ESTIMATE_LAG_BLOCKS = 146; // For first 7.2% of epoch, don't estimate.
|
||||
const EPOCH_BLOCK_LENGTH = 2016; // Bitcoin mainnet
|
||||
const BLOCK_SECONDS_TARGET = 600; // Bitcoin mainnet
|
||||
const TESTNET_MAX_BLOCK_SECONDS = 1200; // Bitcoin testnet
|
||||
|
||||
const diffSeconds = nowSeconds - DATime;
|
||||
const diffSeconds = Math.max(0, nowSeconds - DATime);
|
||||
const blocksInEpoch = (blockHeight >= 0) ? blockHeight % EPOCH_BLOCK_LENGTH : 0;
|
||||
const progressPercent = (blockHeight >= 0) ? blocksInEpoch / EPOCH_BLOCK_LENGTH * 100 : 100;
|
||||
const remainingBlocks = EPOCH_BLOCK_LENGTH - blocksInEpoch;
|
||||
@@ -37,18 +36,16 @@ export function calcDifficultyAdjustment(
|
||||
const expectedBlocks = diffSeconds / BLOCK_SECONDS_TARGET;
|
||||
|
||||
let difficultyChange = 0;
|
||||
let timeAvgSecs = diffSeconds / blocksInEpoch;
|
||||
// Only calculate the estimate once we have 7.2% of blocks in current epoch
|
||||
if (blocksInEpoch >= ESTIMATE_LAG_BLOCKS) {
|
||||
difficultyChange = (BLOCK_SECONDS_TARGET / timeAvgSecs - 1) * 100;
|
||||
// Max increase is x4 (+300%)
|
||||
if (difficultyChange > 300) {
|
||||
difficultyChange = 300;
|
||||
}
|
||||
// Max decrease is /4 (-75%)
|
||||
if (difficultyChange < -75) {
|
||||
difficultyChange = -75;
|
||||
}
|
||||
let timeAvgSecs = blocksInEpoch ? diffSeconds / blocksInEpoch : BLOCK_SECONDS_TARGET;
|
||||
|
||||
difficultyChange = (BLOCK_SECONDS_TARGET / timeAvgSecs - 1) * 100;
|
||||
// Max increase is x4 (+300%)
|
||||
if (difficultyChange > 300) {
|
||||
difficultyChange = 300;
|
||||
}
|
||||
// Max decrease is /4 (-75%)
|
||||
if (difficultyChange < -75) {
|
||||
difficultyChange = -75;
|
||||
}
|
||||
|
||||
// Testnet difficulty is set to 1 after 20 minutes of no blocks,
|
||||
|
||||
@@ -19,20 +19,16 @@ class DiskCache {
|
||||
private isWritingCache = false;
|
||||
|
||||
constructor() {
|
||||
if (!cluster.isMaster) {
|
||||
if (!cluster.isPrimary) {
|
||||
return;
|
||||
}
|
||||
process.on('SIGINT', (e) => {
|
||||
this.saveCacheToDiskSync();
|
||||
process.exit(2);
|
||||
});
|
||||
process.on('SIGTERM', (e) => {
|
||||
this.saveCacheToDiskSync();
|
||||
process.exit(2);
|
||||
this.$saveCacheToDisk(true);
|
||||
process.exit(0);
|
||||
});
|
||||
}
|
||||
|
||||
async $saveCacheToDisk(): Promise<void> {
|
||||
async $saveCacheToDisk(sync: boolean = false): Promise<void> {
|
||||
if (!cluster.isPrimary) {
|
||||
return;
|
||||
}
|
||||
@@ -41,81 +37,61 @@ class DiskCache {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
logger.debug('Writing mempool and blocks data to disk cache (async)...');
|
||||
logger.debug(`Writing mempool and blocks data to disk cache (${ sync ? 'sync' : 'async' })...`);
|
||||
this.isWritingCache = true;
|
||||
|
||||
const mempool = memPool.getMempool();
|
||||
const mempoolArray: TransactionExtended[] = [];
|
||||
for (const tx in mempool) {
|
||||
mempoolArray.push(mempool[tx]);
|
||||
if (mempool[tx] && !mempool[tx].deleteAfter) {
|
||||
mempoolArray.push(mempool[tx]);
|
||||
}
|
||||
}
|
||||
|
||||
Common.shuffleArray(mempoolArray);
|
||||
|
||||
const chunkSize = Math.floor(mempoolArray.length / DiskCache.CHUNK_FILES);
|
||||
|
||||
await fsPromises.writeFile(DiskCache.FILE_NAME, JSON.stringify({
|
||||
network: config.MEMPOOL.NETWORK,
|
||||
cacheSchemaVersion: this.cacheSchemaVersion,
|
||||
blocks: blocks.getBlocks(),
|
||||
blockSummaries: blocks.getBlockSummaries(),
|
||||
mempool: {},
|
||||
mempoolArray: mempoolArray.splice(0, chunkSize),
|
||||
}), { flag: 'w' });
|
||||
for (let i = 1; i < DiskCache.CHUNK_FILES; i++) {
|
||||
await fsPromises.writeFile(DiskCache.FILE_NAMES.replace('{number}', i.toString()), JSON.stringify({
|
||||
if (sync) {
|
||||
fs.writeFileSync(DiskCache.TMP_FILE_NAME, JSON.stringify({
|
||||
network: config.MEMPOOL.NETWORK,
|
||||
cacheSchemaVersion: this.cacheSchemaVersion,
|
||||
blocks: blocks.getBlocks(),
|
||||
blockSummaries: blocks.getBlockSummaries(),
|
||||
mempool: {},
|
||||
mempoolArray: mempoolArray.splice(0, chunkSize),
|
||||
}), { flag: 'w' });
|
||||
}
|
||||
logger.debug('Mempool and blocks data saved to disk cache');
|
||||
this.isWritingCache = false;
|
||||
} catch (e) {
|
||||
logger.warn('Error writing to cache file: ' + (e instanceof Error ? e.message : e));
|
||||
this.isWritingCache = false;
|
||||
}
|
||||
}
|
||||
for (let i = 1; i < DiskCache.CHUNK_FILES; i++) {
|
||||
fs.writeFileSync(DiskCache.TMP_FILE_NAMES.replace('{number}', i.toString()), JSON.stringify({
|
||||
mempool: {},
|
||||
mempoolArray: mempoolArray.splice(0, chunkSize),
|
||||
}), { flag: 'w' });
|
||||
}
|
||||
|
||||
saveCacheToDiskSync(): void {
|
||||
if (!cluster.isPrimary) {
|
||||
return;
|
||||
}
|
||||
if (this.isWritingCache) {
|
||||
logger.debug('Saving cache already in progress. Skipping.');
|
||||
return;
|
||||
}
|
||||
try {
|
||||
logger.debug('Writing mempool and blocks data to disk cache (sync)...');
|
||||
this.isWritingCache = true;
|
||||
|
||||
const mempool = memPool.getMempool();
|
||||
const mempoolArray: TransactionExtended[] = [];
|
||||
for (const tx in mempool) {
|
||||
mempoolArray.push(mempool[tx]);
|
||||
}
|
||||
|
||||
Common.shuffleArray(mempoolArray);
|
||||
|
||||
const chunkSize = Math.floor(mempoolArray.length / DiskCache.CHUNK_FILES);
|
||||
|
||||
fs.writeFileSync(DiskCache.TMP_FILE_NAME, JSON.stringify({
|
||||
network: config.MEMPOOL.NETWORK,
|
||||
cacheSchemaVersion: this.cacheSchemaVersion,
|
||||
blocks: blocks.getBlocks(),
|
||||
blockSummaries: blocks.getBlockSummaries(),
|
||||
mempool: {},
|
||||
mempoolArray: mempoolArray.splice(0, chunkSize),
|
||||
}), { flag: 'w' });
|
||||
for (let i = 1; i < DiskCache.CHUNK_FILES; i++) {
|
||||
fs.writeFileSync(DiskCache.TMP_FILE_NAMES.replace('{number}', i.toString()), JSON.stringify({
|
||||
fs.renameSync(DiskCache.TMP_FILE_NAME, DiskCache.FILE_NAME);
|
||||
for (let i = 1; i < DiskCache.CHUNK_FILES; i++) {
|
||||
fs.renameSync(DiskCache.TMP_FILE_NAMES.replace('{number}', i.toString()), DiskCache.FILE_NAMES.replace('{number}', i.toString()));
|
||||
}
|
||||
} else {
|
||||
await fsPromises.writeFile(DiskCache.TMP_FILE_NAME, JSON.stringify({
|
||||
network: config.MEMPOOL.NETWORK,
|
||||
cacheSchemaVersion: this.cacheSchemaVersion,
|
||||
blocks: blocks.getBlocks(),
|
||||
blockSummaries: blocks.getBlockSummaries(),
|
||||
mempool: {},
|
||||
mempoolArray: mempoolArray.splice(0, chunkSize),
|
||||
}), { flag: 'w' });
|
||||
}
|
||||
for (let i = 1; i < DiskCache.CHUNK_FILES; i++) {
|
||||
await fsPromises.writeFile(DiskCache.TMP_FILE_NAMES.replace('{number}', i.toString()), JSON.stringify({
|
||||
mempool: {},
|
||||
mempoolArray: mempoolArray.splice(0, chunkSize),
|
||||
}), { flag: 'w' });
|
||||
}
|
||||
|
||||
fs.renameSync(DiskCache.TMP_FILE_NAME, DiskCache.FILE_NAME);
|
||||
for (let i = 1; i < DiskCache.CHUNK_FILES; i++) {
|
||||
fs.renameSync(DiskCache.TMP_FILE_NAMES.replace('{number}', i.toString()), DiskCache.FILE_NAMES.replace('{number}', i.toString()));
|
||||
await fsPromises.rename(DiskCache.TMP_FILE_NAME, DiskCache.FILE_NAME);
|
||||
for (let i = 1; i < DiskCache.CHUNK_FILES; i++) {
|
||||
await fsPromises.rename(DiskCache.TMP_FILE_NAMES.replace('{number}', i.toString()), DiskCache.FILE_NAMES.replace('{number}', i.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
logger.debug('Mempool and blocks data saved to disk cache');
|
||||
|
||||
@@ -108,7 +108,7 @@ async function buildFullChannel(clChannelA: any, clChannelB: any): Promise<ILigh
|
||||
|
||||
return {
|
||||
channel_id: Common.channelShortIdToIntegerId(clChannelA.short_channel_id),
|
||||
capacity: clChannelA.satoshis,
|
||||
capacity: (clChannelA.amount_msat / 1000).toString(),
|
||||
last_update: lastUpdate,
|
||||
node1_policy: convertPolicy(clChannelA),
|
||||
node2_policy: convertPolicy(clChannelB),
|
||||
@@ -132,7 +132,7 @@ async function buildIncompleteChannel(clChannel: any): Promise<ILightningApi.Cha
|
||||
|
||||
return {
|
||||
channel_id: Common.channelShortIdToIntegerId(clChannel.short_channel_id),
|
||||
capacity: clChannel.satoshis,
|
||||
capacity: (clChannel.amount_msat / 1000).toString(),
|
||||
last_update: clChannel.last_update ?? 0,
|
||||
node1_policy: convertPolicy(clChannel),
|
||||
node2_policy: null,
|
||||
@@ -148,8 +148,8 @@ async function buildIncompleteChannel(clChannel: any): Promise<ILightningApi.Cha
|
||||
function convertPolicy(clChannel: any): ILightningApi.RoutingPolicy {
|
||||
return {
|
||||
time_lock_delta: clChannel.delay,
|
||||
min_htlc: clChannel.htlc_minimum_msat.slice(0, -4),
|
||||
max_htlc_msat: clChannel.htlc_maximum_msat.slice(0, -4),
|
||||
min_htlc: clChannel.htlc_minimum_msat.toString(),
|
||||
max_htlc_msat: clChannel.htlc_maximum_msat.toString(),
|
||||
fee_base_msat: clChannel.base_fee_millisatoshi,
|
||||
fee_rate_milli_msat: clChannel.fee_per_millionth,
|
||||
disabled: !clChannel.active,
|
||||
|
||||
@@ -4,21 +4,29 @@ import * as fs from 'fs';
|
||||
import { AbstractLightningApi } from '../lightning-api-abstract-factory';
|
||||
import { ILightningApi } from '../lightning-api.interface';
|
||||
import config from '../../../config';
|
||||
import logger from '../../../logger';
|
||||
|
||||
class LndApi implements AbstractLightningApi {
|
||||
axiosConfig: AxiosRequestConfig = {};
|
||||
|
||||
constructor() {
|
||||
if (config.LIGHTNING.ENABLED) {
|
||||
if (!config.LIGHTNING.ENABLED) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
this.axiosConfig = {
|
||||
headers: {
|
||||
'Grpc-Metadata-macaroon': fs.readFileSync(config.LND.MACAROON_PATH).toString('hex')
|
||||
'Grpc-Metadata-macaroon': fs.readFileSync(config.LND.MACAROON_PATH).toString('hex'),
|
||||
},
|
||||
httpsAgent: new Agent({
|
||||
ca: fs.readFileSync(config.LND.TLS_CERT_PATH)
|
||||
}),
|
||||
timeout: 10000
|
||||
timeout: config.LND.TIMEOUT
|
||||
};
|
||||
} catch (e) {
|
||||
config.LIGHTNING.ENABLED = false;
|
||||
logger.updateNetwork();
|
||||
logger.err(`Could not initialize LND Macaroon/TLS Cert. Disabling LIGHTNING. ` + (e instanceof Error ? e.message : e));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ class MempoolBlocks {
|
||||
// prepare a stripped down version of the mempool with only the minimum necessary data
|
||||
// to reduce the overhead of passing this data to the worker thread
|
||||
const strippedMempool: { [txid: string]: ThreadTransaction } = {};
|
||||
Object.values(newMempool).forEach(entry => {
|
||||
Object.values(newMempool).filter(tx => !tx.deleteAfter).forEach(entry => {
|
||||
strippedMempool[entry.txid] = {
|
||||
txid: entry.txid,
|
||||
fee: entry.fee,
|
||||
@@ -186,7 +186,14 @@ class MempoolBlocks {
|
||||
this.txSelectionWorker?.once('error', reject);
|
||||
});
|
||||
this.txSelectionWorker.postMessage({ type: 'set', mempool: strippedMempool });
|
||||
const { blocks, clusters } = await workerResultPromise;
|
||||
let { blocks, clusters } = await workerResultPromise;
|
||||
// filter out stale transactions
|
||||
const unfilteredCount = blocks.reduce((total, block) => { return total + block.length; }, 0);
|
||||
blocks = blocks.map(block => block.filter(tx => (tx.txid && tx.txid in newMempool)));
|
||||
const filteredCount = blocks.reduce((total, block) => { return total + block.length; }, 0);
|
||||
if (filteredCount < unfilteredCount) {
|
||||
logger.warn(`tx selection worker thread returned ${unfilteredCount - filteredCount} stale transactions from makeBlockTemplates`);
|
||||
}
|
||||
|
||||
// clean up thread error listener
|
||||
this.txSelectionWorker?.removeListener('error', threadErrorListener);
|
||||
@@ -228,7 +235,14 @@ class MempoolBlocks {
|
||||
this.txSelectionWorker?.once('error', reject);
|
||||
});
|
||||
this.txSelectionWorker.postMessage({ type: 'update', added: addedStripped, removed });
|
||||
const { blocks, clusters } = await workerResultPromise;
|
||||
let { blocks, clusters } = await workerResultPromise;
|
||||
// filter out stale transactions
|
||||
const unfilteredCount = blocks.reduce((total, block) => { return total + block.length; }, 0);
|
||||
blocks = blocks.map(block => block.filter(tx => (tx.txid && tx.txid in newMempool)));
|
||||
const filteredCount = blocks.reduce((total, block) => { return total + block.length; }, 0);
|
||||
if (filteredCount < unfilteredCount) {
|
||||
logger.warn(`tx selection worker thread returned ${unfilteredCount - filteredCount} stale transactions from updateBlockTemplates`);
|
||||
}
|
||||
|
||||
// clean up thread error listener
|
||||
this.txSelectionWorker?.removeListener('error', threadErrorListener);
|
||||
@@ -243,7 +257,7 @@ class MempoolBlocks {
|
||||
// update this thread's mempool with the results
|
||||
blocks.forEach(block => {
|
||||
block.forEach(tx => {
|
||||
if (tx.txid in mempool) {
|
||||
if (tx.txid && tx.txid in mempool) {
|
||||
if (tx.effectiveFeePerVsize != null) {
|
||||
mempool[tx.txid].effectiveFeePerVsize = tx.effectiveFeePerVsize;
|
||||
}
|
||||
@@ -253,6 +267,10 @@ class MempoolBlocks {
|
||||
const cluster = clusters[tx.cpfpRoot];
|
||||
let matched = false;
|
||||
cluster.forEach(txid => {
|
||||
if (!txid || !mempool[txid]) {
|
||||
logger.warn('projected transaction ancestor missing from mempool cache');
|
||||
return;
|
||||
}
|
||||
if (txid === tx.txid) {
|
||||
matched = true;
|
||||
} else {
|
||||
@@ -273,6 +291,8 @@ class MempoolBlocks {
|
||||
mempool[tx.txid].bestDescendant = null;
|
||||
}
|
||||
mempool[tx.txid].cpfpChecked = tx.cpfpChecked;
|
||||
} else {
|
||||
logger.warn('projected transaction missing from mempool cache');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -38,7 +38,6 @@ class Mempool {
|
||||
|
||||
constructor() {
|
||||
setInterval(this.updateTxPerSecond.bind(this), 1000);
|
||||
setInterval(this.deleteExpiredTransactions.bind(this), 20000);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -256,7 +255,7 @@ class Mempool {
|
||||
}
|
||||
}
|
||||
|
||||
private deleteExpiredTransactions() {
|
||||
public deleteExpiredTransactions() {
|
||||
const now = new Date().getTime();
|
||||
for (const tx in this.mempoolCache) {
|
||||
const lazyDeleteAt = this.mempoolCache[tx].deleteAfter;
|
||||
|
||||
@@ -13,6 +13,7 @@ import BlocksAuditsRepository from '../../repositories/BlocksAuditsRepository';
|
||||
import PricesRepository from '../../repositories/PricesRepository';
|
||||
import { bitcoinCoreApi } from '../bitcoin/bitcoin-api-factory';
|
||||
import { IEsploraApi } from '../bitcoin/esplora-api.interface';
|
||||
import database from '../../database';
|
||||
|
||||
class Mining {
|
||||
private blocksPriceIndexingRunning = false;
|
||||
@@ -141,6 +142,9 @@ class Mining {
|
||||
const blockCount1w: number = await BlocksRepository.$blockCount(pool.id, '1w');
|
||||
const totalBlock1w: number = await BlocksRepository.$blockCount(null, '1w');
|
||||
|
||||
const avgHealth = await BlocksRepository.$getAvgBlockHealthPerPoolId(pool.id);
|
||||
const totalReward = await BlocksRepository.$getTotalRewardForPoolId(pool.id);
|
||||
|
||||
let currentEstimatedHashrate = 0;
|
||||
try {
|
||||
currentEstimatedHashrate = await bitcoinClient.getNetworkHashPs(totalBlock24h);
|
||||
@@ -162,6 +166,8 @@ class Mining {
|
||||
},
|
||||
estimatedHashrate: currentEstimatedHashrate * (blockCount24h / totalBlock24h),
|
||||
reportedHashrate: null,
|
||||
avgBlockHealth: avgHealth,
|
||||
totalReward: totalReward,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -211,6 +211,7 @@ class WebsocketHandler {
|
||||
if (!_blocks) {
|
||||
_blocks = blocks.getBlocks().slice(-config.MEMPOOL.INITIAL_BLOCKS_AMOUNT);
|
||||
}
|
||||
const da = difficultyAdjustment.getDifficultyAdjustment();
|
||||
return {
|
||||
'mempoolInfo': memPool.getMempoolInfo(),
|
||||
'vBytesPerSecond': memPool.getVBytesPerSecond(),
|
||||
@@ -220,7 +221,7 @@ class WebsocketHandler {
|
||||
'transactions': memPool.getLatestTransactions(),
|
||||
'backendInfo': backendInfo.getBackendInfo(),
|
||||
'loadingIndicators': loadingIndicators.getLoadingIndicators(),
|
||||
'da': difficultyAdjustment.getDifficultyAdjustment(),
|
||||
'da': da?.previousTime ? da : undefined,
|
||||
'fees': feeApi.getRecommendedFee(),
|
||||
...this.extraInitProperties
|
||||
};
|
||||
@@ -278,7 +279,9 @@ class WebsocketHandler {
|
||||
response['mempoolInfo'] = mempoolInfo;
|
||||
response['vBytesPerSecond'] = vBytesPerSecond;
|
||||
response['transactions'] = newTransactions.slice(0, 6).map((tx) => Common.stripTransaction(tx));
|
||||
response['da'] = da;
|
||||
if (da?.previousTime) {
|
||||
response['da'] = da;
|
||||
}
|
||||
response['fees'] = recommendedFees;
|
||||
}
|
||||
|
||||
@@ -432,7 +435,7 @@ class WebsocketHandler {
|
||||
}
|
||||
|
||||
if (Common.indexingEnabled() && memPool.isInSync()) {
|
||||
const { censored, added, fresh, score } = Audit.auditBlock(transactions, projectedBlocks, auditMempool);
|
||||
const { censored, added, fresh, score, similarity } = Audit.auditBlock(transactions, projectedBlocks, auditMempool);
|
||||
const matchRate = Math.round(score * 100 * 100) / 100;
|
||||
|
||||
const stripped = projectedBlocks[0]?.transactions ? projectedBlocks[0].transactions.map((tx) => {
|
||||
@@ -464,8 +467,14 @@ class WebsocketHandler {
|
||||
|
||||
if (block.extras) {
|
||||
block.extras.matchRate = matchRate;
|
||||
block.extras.similarity = similarity;
|
||||
}
|
||||
}
|
||||
} else if (block.extras) {
|
||||
const mBlocks = mempoolBlocks.getMempoolBlocksWithTransactions();
|
||||
if (mBlocks?.length && mBlocks[0].transactions) {
|
||||
block.extras.similarity = Common.getSimilarity(mBlocks[0], transactions);
|
||||
}
|
||||
}
|
||||
|
||||
const removed: string[] = [];
|
||||
@@ -499,7 +508,7 @@ class WebsocketHandler {
|
||||
const response = {
|
||||
'block': block,
|
||||
'mempoolInfo': memPool.getMempoolInfo(),
|
||||
'da': da,
|
||||
'da': da?.previousTime ? da : undefined,
|
||||
'fees': fees,
|
||||
};
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ interface IConfig {
|
||||
ADVANCED_GBT_MEMPOOL: boolean;
|
||||
CPFP_INDEXING: boolean;
|
||||
MAX_BLOCKS_BULK_QUERY: number;
|
||||
DISK_CACHE_BLOCK_INTERVAL: number;
|
||||
};
|
||||
ESPLORA: {
|
||||
REST_API_URL: string;
|
||||
@@ -51,6 +52,7 @@ interface IConfig {
|
||||
TLS_CERT_PATH: string;
|
||||
MACAROON_PATH: string;
|
||||
REST_API_URL: string;
|
||||
TIMEOUT: number;
|
||||
};
|
||||
CLIGHTNING: {
|
||||
SOCKET: string;
|
||||
@@ -65,12 +67,14 @@ interface IConfig {
|
||||
PORT: number;
|
||||
USERNAME: string;
|
||||
PASSWORD: string;
|
||||
TIMEOUT: number;
|
||||
};
|
||||
SECOND_CORE_RPC: {
|
||||
HOST: string;
|
||||
PORT: number;
|
||||
USERNAME: string;
|
||||
PASSWORD: string;
|
||||
TIMEOUT: number;
|
||||
};
|
||||
DATABASE: {
|
||||
ENABLED: boolean;
|
||||
@@ -155,6 +159,7 @@ const defaults: IConfig = {
|
||||
'ADVANCED_GBT_MEMPOOL': false,
|
||||
'CPFP_INDEXING': false,
|
||||
'MAX_BLOCKS_BULK_QUERY': 0,
|
||||
'DISK_CACHE_BLOCK_INTERVAL': 6,
|
||||
},
|
||||
'ESPLORA': {
|
||||
'REST_API_URL': 'http://127.0.0.1:3000',
|
||||
@@ -168,13 +173,15 @@ const defaults: IConfig = {
|
||||
'HOST': '127.0.0.1',
|
||||
'PORT': 8332,
|
||||
'USERNAME': 'mempool',
|
||||
'PASSWORD': 'mempool'
|
||||
'PASSWORD': 'mempool',
|
||||
'TIMEOUT': 60000,
|
||||
},
|
||||
'SECOND_CORE_RPC': {
|
||||
'HOST': '127.0.0.1',
|
||||
'PORT': 8332,
|
||||
'USERNAME': 'mempool',
|
||||
'PASSWORD': 'mempool'
|
||||
'PASSWORD': 'mempool',
|
||||
'TIMEOUT': 60000,
|
||||
},
|
||||
'DATABASE': {
|
||||
'ENABLED': true,
|
||||
@@ -214,6 +221,7 @@ const defaults: IConfig = {
|
||||
'TLS_CERT_PATH': '',
|
||||
'MACAROON_PATH': '',
|
||||
'REST_API_URL': 'https://localhost:8080',
|
||||
'TIMEOUT': 10000,
|
||||
},
|
||||
'CLIGHTNING': {
|
||||
'SOCKET': '',
|
||||
|
||||
@@ -178,6 +178,7 @@ class Server {
|
||||
logger.debug(msg);
|
||||
}
|
||||
}
|
||||
memPool.deleteExpiredTransactions();
|
||||
await blocks.$updateBlocks();
|
||||
await memPool.$updateMempool();
|
||||
indexer.$run();
|
||||
@@ -215,11 +216,11 @@ class Server {
|
||||
await lightningStatsUpdater.$startService();
|
||||
await forensicsService.$startService();
|
||||
} catch(e) {
|
||||
logger.err(`Nodejs lightning backend crashed. Restarting in 1 minute. Reason: ${(e instanceof Error ? e.message : e)}`);
|
||||
logger.err(`Exception in $runLightningBackend. Restarting in 1 minute. Reason: ${(e instanceof Error ? e.message : e)}`);
|
||||
await Common.sleep$(1000 * 60);
|
||||
this.$runLightningBackend();
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
setUpWebsocketHandling(): void {
|
||||
if (this.wss) {
|
||||
|
||||
@@ -69,6 +69,10 @@ class Logger {
|
||||
this.network = this.getNetwork();
|
||||
}
|
||||
|
||||
public updateNetwork(): void {
|
||||
this.network = this.getNetwork();
|
||||
}
|
||||
|
||||
private addprio(prio): void {
|
||||
this[prio] = (function(_this) {
|
||||
return function(msg, tag?: string) {
|
||||
|
||||
@@ -153,6 +153,7 @@ export interface BlockExtension {
|
||||
feeRange: number[]; // fee rate percentiles
|
||||
reward: number;
|
||||
matchRate: number | null;
|
||||
similarity?: number;
|
||||
pool: {
|
||||
id: number; // Note - This is the `unique_id`, not to mix with the auto increment `id`
|
||||
name: string;
|
||||
@@ -308,9 +309,11 @@ export interface IDifficultyAdjustment {
|
||||
remainingBlocks: number;
|
||||
remainingTime: number;
|
||||
previousRetarget: number;
|
||||
previousTime: number;
|
||||
nextRetargetHeight: number;
|
||||
timeAvg: number;
|
||||
timeOffset: number;
|
||||
expectedBlocks: number;
|
||||
}
|
||||
|
||||
export interface IndexedDifficultyAdjustment {
|
||||
|
||||
@@ -330,6 +330,55 @@ class BlocksRepository {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get average block health for all blocks for a single pool
|
||||
*/
|
||||
public async $getAvgBlockHealthPerPoolId(poolId: number): Promise<number> {
|
||||
const params: any[] = [];
|
||||
const query = `
|
||||
SELECT AVG(blocks_audits.match_rate) AS avg_match_rate
|
||||
FROM blocks
|
||||
JOIN blocks_audits ON blocks.height = blocks_audits.height
|
||||
WHERE blocks.pool_id = ?
|
||||
`;
|
||||
params.push(poolId);
|
||||
|
||||
try {
|
||||
const [rows] = await DB.query(query, params);
|
||||
if (!rows[0] || !rows[0].avg_match_rate) {
|
||||
return 0;
|
||||
}
|
||||
return Math.round(rows[0].avg_match_rate * 100) / 100;
|
||||
} catch (e) {
|
||||
logger.err(`Cannot get average block health for pool id ${poolId}. Reason: ` + (e instanceof Error ? e.message : e));
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get average block health for all blocks for a single pool
|
||||
*/
|
||||
public async $getTotalRewardForPoolId(poolId: number): Promise<number> {
|
||||
const params: any[] = [];
|
||||
const query = `
|
||||
SELECT sum(reward) as total_reward
|
||||
FROM blocks
|
||||
WHERE blocks.pool_id = ?
|
||||
`;
|
||||
params.push(poolId);
|
||||
|
||||
try {
|
||||
const [rows] = await DB.query(query, params);
|
||||
if (!rows[0] || !rows[0].total_reward) {
|
||||
return 0;
|
||||
}
|
||||
return rows[0].total_reward;
|
||||
} catch (e) {
|
||||
logger.err(`Cannot get total reward for pool id ${poolId}. Reason: ` + (e instanceof Error ? e.message : e));
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the oldest indexed block
|
||||
*/
|
||||
|
||||
@@ -22,12 +22,15 @@ class LightningStatsUpdater {
|
||||
* Update the latest entry for each node every config.LIGHTNING.STATS_REFRESH_INTERVAL seconds
|
||||
*/
|
||||
private async $logStatsDaily(): Promise<void> {
|
||||
const date = new Date();
|
||||
Common.setDateMidnight(date);
|
||||
const networkGraph = await lightningApi.$getNetworkGraph();
|
||||
await LightningStatsImporter.computeNetworkStats(date.getTime() / 1000, networkGraph);
|
||||
|
||||
logger.debug(`Updated latest network stats`, logger.tags.ln);
|
||||
try {
|
||||
const date = new Date();
|
||||
Common.setDateMidnight(date);
|
||||
const networkGraph = await lightningApi.$getNetworkGraph();
|
||||
await LightningStatsImporter.computeNetworkStats(date.getTime() / 1000, networkGraph);
|
||||
logger.debug(`Updated latest network stats`, logger.tags.ln);
|
||||
} catch (e) {
|
||||
logger.err(`Exception in $logStatsDaily. Reason: ${(e instanceof Error ? e.message : e)}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -73,6 +73,11 @@ class PriceUpdater {
|
||||
}
|
||||
|
||||
public async $run(): Promise<void> {
|
||||
if (config.MEMPOOL.NETWORK === 'signet' || config.MEMPOOL.NETWORK === 'testnet') {
|
||||
// Coins have no value on testnet/signet, so we want to always show 0
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.running === true) {
|
||||
return;
|
||||
}
|
||||
@@ -88,7 +93,7 @@ class PriceUpdater {
|
||||
if (this.historyInserted === false && config.DATABASE.ENABLED === true) {
|
||||
await this.$insertHistoricalPrices();
|
||||
}
|
||||
} catch (e) {
|
||||
} catch (e: any) {
|
||||
logger.err(`Cannot save BTC prices in db. Reason: ${e instanceof Error ? e.message : e}`, logger.tags.mining);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ If you want to use different credentials, specify them in the `docker-compose.ym
|
||||
CORE_RPC_PORT: "8332"
|
||||
CORE_RPC_USERNAME: "customuser"
|
||||
CORE_RPC_PASSWORD: "custompassword"
|
||||
CORE_RPC_TIMEOUT: "60000"
|
||||
```
|
||||
|
||||
The IP address in the example above refers to Docker's default gateway IP address so that the container can hit the `bitcoind` instance running on the host machine. If your setup is different, update it accordingly.
|
||||
@@ -112,6 +113,7 @@ Below we list all settings from `mempool-config.json` and the corresponding over
|
||||
"ADVANCED_GBT_MEMPOOL": false,
|
||||
"CPFP_INDEXING": false,
|
||||
"MAX_BLOCKS_BULK_QUERY": 0,
|
||||
"DISK_CACHE_BLOCK_INTERVAL": 6
|
||||
},
|
||||
```
|
||||
|
||||
@@ -143,6 +145,7 @@ Corresponding `docker-compose.yml` overrides:
|
||||
MEMPOOL_ADVANCED_GBT_MEMPOOL: ""
|
||||
MEMPOOL_CPFP_INDEXING: ""
|
||||
MAX_BLOCKS_BULK_QUERY: ""
|
||||
DISK_CACHE_BLOCK_INTERVAL: ""
|
||||
...
|
||||
```
|
||||
|
||||
@@ -158,7 +161,8 @@ Corresponding `docker-compose.yml` overrides:
|
||||
"HOST": "127.0.0.1",
|
||||
"PORT": 8332,
|
||||
"USERNAME": "mempool",
|
||||
"PASSWORD": "mempool"
|
||||
"PASSWORD": "mempool",
|
||||
"TIMEOUT": 60000
|
||||
},
|
||||
```
|
||||
|
||||
@@ -170,6 +174,7 @@ Corresponding `docker-compose.yml` overrides:
|
||||
CORE_RPC_PORT: ""
|
||||
CORE_RPC_USERNAME: ""
|
||||
CORE_RPC_PASSWORD: ""
|
||||
CORE_RPC_TIMEOUT: 60000
|
||||
...
|
||||
```
|
||||
|
||||
@@ -219,7 +224,8 @@ Corresponding `docker-compose.yml` overrides:
|
||||
"HOST": "127.0.0.1",
|
||||
"PORT": 8332,
|
||||
"USERNAME": "mempool",
|
||||
"PASSWORD": "mempool"
|
||||
"PASSWORD": "mempool",
|
||||
"TIMEOUT": 60000
|
||||
},
|
||||
```
|
||||
|
||||
@@ -231,6 +237,7 @@ Corresponding `docker-compose.yml` overrides:
|
||||
SECOND_CORE_RPC_PORT: ""
|
||||
SECOND_CORE_RPC_USERNAME: ""
|
||||
SECOND_CORE_RPC_PASSWORD: ""
|
||||
SECOND_CORE_RPC_TIMEOUT: ""
|
||||
...
|
||||
```
|
||||
|
||||
@@ -403,6 +410,7 @@ Corresponding `docker-compose.yml` overrides:
|
||||
"TLS_CERT_PATH": ""
|
||||
"MACAROON_PATH": ""
|
||||
"REST_API_URL": "https://localhost:8080"
|
||||
"TIMEOUT": 10000
|
||||
}
|
||||
```
|
||||
|
||||
@@ -413,6 +421,7 @@ Corresponding `docker-compose.yml` overrides:
|
||||
LND_TLS_CERT_PATH: ""
|
||||
LND_MACAROON_PATH: ""
|
||||
LND_REST_API_URL: "https://localhost:8080"
|
||||
LND_TIMEOUT: 10000
|
||||
...
|
||||
```
|
||||
|
||||
@@ -432,3 +441,26 @@ Corresponding `docker-compose.yml` overrides:
|
||||
CLIGHTNING_SOCKET: ""
|
||||
...
|
||||
```
|
||||
|
||||
<br/>
|
||||
|
||||
`mempool-config.json`:
|
||||
```json
|
||||
"MAXMIND": {
|
||||
"ENABLED": true,
|
||||
"GEOLITE2_CITY": "/usr/local/share/GeoIP/GeoLite2-City.mmdb",
|
||||
"GEOLITE2_ASN": "/usr/local/share/GeoIP/GeoLite2-ASN.mmdb",
|
||||
"GEOIP2_ISP": "/usr/local/share/GeoIP/GeoIP2-ISP.mmdb"
|
||||
}
|
||||
```
|
||||
|
||||
Corresponding `docker-compose.yml` overrides:
|
||||
```yaml
|
||||
api:
|
||||
environment:
|
||||
MAXMIND_ENABLED: true,
|
||||
MAXMIND_GEOLITE2_CITY: "/backend/GeoIP/GeoLite2-City.mmdb",
|
||||
MAXMIND_GEOLITE2_ASN": "/backend/GeoIP/GeoLite2-ASN.mmdb",
|
||||
MAXMIND_GEOIP2_ISP": "/backend/GeoIP/GeoIP2-ISP.mmdb"
|
||||
...
|
||||
```
|
||||
|
||||
@@ -17,6 +17,7 @@ WORKDIR /backend
|
||||
|
||||
RUN chown 1000:1000 ./
|
||||
COPY --from=builder --chown=1000:1000 /build/package ./package/
|
||||
COPY --from=builder --chown=1000:1000 /build/GeoIP ./GeoIP/
|
||||
COPY --from=builder --chown=1000:1000 /build/mempool-config.json /build/start.sh /build/wait-for-it.sh ./
|
||||
|
||||
USER 1000
|
||||
|
||||
@@ -26,13 +26,15 @@
|
||||
"ADVANCED_GBT_AUDIT": __MEMPOOL_ADVANCED_GBT_AUDIT__,
|
||||
"ADVANCED_GBT_MEMPOOL": __MEMPOOL_ADVANCED_GBT_MEMPOOL__,
|
||||
"CPFP_INDEXING": __MEMPOOL_CPFP_INDEXING__,
|
||||
"MAX_BLOCKS_BULK_QUERY": __MEMPOOL_MAX_BLOCKS_BULK_QUERY__
|
||||
"MAX_BLOCKS_BULK_QUERY": __MEMPOOL_MAX_BLOCKS_BULK_QUERY__,
|
||||
"DISK_CACHE_BLOCK_INTERVAL": __MEMPOOL_DISK_CACHE_BLOCK_INTERVAL__
|
||||
},
|
||||
"CORE_RPC": {
|
||||
"HOST": "__CORE_RPC_HOST__",
|
||||
"PORT": __CORE_RPC_PORT__,
|
||||
"USERNAME": "__CORE_RPC_USERNAME__",
|
||||
"PASSWORD": "__CORE_RPC_PASSWORD__"
|
||||
"PASSWORD": "__CORE_RPC_PASSWORD__",
|
||||
"TIMEOUT": __CORE_RPC_TIMEOUT__
|
||||
},
|
||||
"ELECTRUM": {
|
||||
"HOST": "__ELECTRUM_HOST__",
|
||||
@@ -46,7 +48,8 @@
|
||||
"HOST": "__SECOND_CORE_RPC_HOST__",
|
||||
"PORT": __SECOND_CORE_RPC_PORT__,
|
||||
"USERNAME": "__SECOND_CORE_RPC_USERNAME__",
|
||||
"PASSWORD": "__SECOND_CORE_RPC_PASSWORD__"
|
||||
"PASSWORD": "__SECOND_CORE_RPC_PASSWORD__",
|
||||
"TIMEOUT": __SECOND_CORE_RPC_TIMEOUT__
|
||||
},
|
||||
"DATABASE": {
|
||||
"ENABLED": __DATABASE_ENABLED__,
|
||||
@@ -83,7 +86,8 @@
|
||||
"LND": {
|
||||
"TLS_CERT_PATH": "__LND_TLS_CERT_PATH__",
|
||||
"MACAROON_PATH": "__LND_MACAROON_PATH__",
|
||||
"REST_API_URL": "__LND_REST_API_URL__"
|
||||
"REST_API_URL": "__LND_REST_API_URL__",
|
||||
"TIMEOUT": "__LND_TIMEOUT__"
|
||||
},
|
||||
"CLIGHTNING": {
|
||||
"SOCKET": "__CLIGHTNING_SOCKET__"
|
||||
@@ -107,5 +111,11 @@
|
||||
"LIQUID_ONION": "__EXTERNAL_DATA_SERVER_LIQUID_ONION__",
|
||||
"BISQ_URL": "__EXTERNAL_DATA_SERVER_BISQ_URL__",
|
||||
"BISQ_ONION": "__EXTERNAL_DATA_SERVER_BISQ_ONION__"
|
||||
},
|
||||
"MAXMIND": {
|
||||
"ENABLED": __MAXMIND_ENABLED__,
|
||||
"GEOLITE2_CITY": "__MAXMIND_GEOLITE2_CITY__",
|
||||
"GEOLITE2_ASN": "__MAXMIND_GEOLITE2_ASN__",
|
||||
"GEOIP2_ISP": "__MAXMIND_GEOIP2_ISP__"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ __MEMPOOL_EXTERNAL_MAX_RETRY__=${MEMPOOL_EXTERNAL_MAX_RETRY:=1}
|
||||
__MEMPOOL_EXTERNAL_RETRY_INTERVAL__=${MEMPOOL_EXTERNAL_RETRY_INTERVAL:=0}
|
||||
__MEMPOOL_USER_AGENT__=${MEMPOOL_USER_AGENT:=mempool}
|
||||
__MEMPOOL_STDOUT_LOG_MIN_PRIORITY__=${MEMPOOL_STDOUT_LOG_MIN_PRIORITY:=info}
|
||||
__MEMPOOL_INDEXING_BLOCKS_AMOUNT__=${MEMPOOL_INDEXING_BLOCKS_AMOUNT:=false}
|
||||
__MEMPOOL_AUTOMATIC_BLOCK_REINDEXING__=${MEMPOOL_AUTOMATIC_BLOCK_REINDEXING:=false}
|
||||
__MEMPOOL_POOLS_JSON_URL__=${MEMPOOL_POOLS_JSON_URL:=https://raw.githubusercontent.com/mempool/mining-pools/master/pools-v2.json}
|
||||
__MEMPOOL_POOLS_JSON_TREE_URL__=${MEMPOOL_POOLS_JSON_TREE_URL:=https://api.github.com/repos/mempool/mining-pools/git/trees/master}
|
||||
@@ -31,12 +30,14 @@ __MEMPOOL_ADVANCED_GBT_AUDIT__=${MEMPOOL_ADVANCED_GBT_AUDIT:=false}
|
||||
__MEMPOOL_ADVANCED_GBT_MEMPOOL__=${MEMPOOL_ADVANCED_GBT_MEMPOOL:=false}
|
||||
__MEMPOOL_CPFP_INDEXING__=${MEMPOOL_CPFP_INDEXING:=false}
|
||||
__MEMPOOL_MAX_BLOCKS_BULK_QUERY__=${MEMPOOL_MAX_BLOCKS_BULK_QUERY:=0}
|
||||
__MEMPOOL_DISK_CACHE_BLOCK_INTERVAL__=${MEMPOOL_DISK_CACHE_BLOCK_INTERVAL:=6}
|
||||
|
||||
# CORE_RPC
|
||||
__CORE_RPC_HOST__=${CORE_RPC_HOST:=127.0.0.1}
|
||||
__CORE_RPC_PORT__=${CORE_RPC_PORT:=8332}
|
||||
__CORE_RPC_USERNAME__=${CORE_RPC_USERNAME:=mempool}
|
||||
__CORE_RPC_PASSWORD__=${CORE_RPC_PASSWORD:=mempool}
|
||||
__CORE_RPC_TIMEOUT__=${CORE_RPC_TIMEOUT:=60000}
|
||||
|
||||
# ELECTRUM
|
||||
__ELECTRUM_HOST__=${ELECTRUM_HOST:=127.0.0.1}
|
||||
@@ -51,6 +52,7 @@ __SECOND_CORE_RPC_HOST__=${SECOND_CORE_RPC_HOST:=127.0.0.1}
|
||||
__SECOND_CORE_RPC_PORT__=${SECOND_CORE_RPC_PORT:=8332}
|
||||
__SECOND_CORE_RPC_USERNAME__=${SECOND_CORE_RPC_USERNAME:=mempool}
|
||||
__SECOND_CORE_RPC_PASSWORD__=${SECOND_CORE_RPC_PASSWORD:=mempool}
|
||||
__SECOND_CORE_RPC_TIMEOUT__=${SECOND_CORE_RPC_TIMEOUT:=60000}
|
||||
|
||||
# DATABASE
|
||||
__DATABASE_ENABLED__=${DATABASE_ENABLED:=true}
|
||||
@@ -108,10 +110,18 @@ __LIGHTNING_LOGGER_UPDATE_INTERVAL__=${LIGHTNING_LOGGER_UPDATE_INTERVAL:=30}
|
||||
__LND_TLS_CERT_PATH__=${LND_TLS_CERT_PATH:=""}
|
||||
__LND_MACAROON_PATH__=${LND_MACAROON_PATH:=""}
|
||||
__LND_REST_API_URL__=${LND_REST_API_URL:="https://localhost:8080"}
|
||||
__LND_TIMEOUT__=${LND_TIMEOUT:=10000}
|
||||
|
||||
# CLN
|
||||
__CLIGHTNING_SOCKET__=${CLIGHTNING_SOCKET:=""}
|
||||
|
||||
# MAXMIND
|
||||
__MAXMIND_ENABLED__=${MAXMIND_ENABLED:=true}
|
||||
__MAXMIND_GEOLITE2_CITY__=${MAXMIND_GEOLITE2_CITY:="/backend/GeoIP/GeoLite2-City.mmdb"}
|
||||
__MAXMIND_GEOLITE2_ASN__=${MAXMIND_GEOLITE2_ASN:="/backend/GeoIP/GeoLite2-ASN.mmdb"}
|
||||
__MAXMIND_GEOIP2_ISP__=${MAXMIND_GEOIP2_ISP:=""}
|
||||
|
||||
|
||||
mkdir -p "${__MEMPOOL_CACHE_DIR__}"
|
||||
|
||||
sed -i "s/__MEMPOOL_NETWORK__/${__MEMPOOL_NETWORK__}/g" mempool-config.json
|
||||
@@ -135,7 +145,6 @@ sed -i "s!__MEMPOOL_EXTERNAL_MAX_RETRY__!${__MEMPOOL_EXTERNAL_MAX_RETRY__}!g" me
|
||||
sed -i "s!__MEMPOOL_EXTERNAL_RETRY_INTERVAL__!${__MEMPOOL_EXTERNAL_RETRY_INTERVAL__}!g" mempool-config.json
|
||||
sed -i "s!__MEMPOOL_USER_AGENT__!${__MEMPOOL_USER_AGENT__}!g" mempool-config.json
|
||||
sed -i "s/__MEMPOOL_STDOUT_LOG_MIN_PRIORITY__/${__MEMPOOL_STDOUT_LOG_MIN_PRIORITY__}/g" mempool-config.json
|
||||
sed -i "s/__MEMPOOL_INDEXING_BLOCKS_AMOUNT__/${__MEMPOOL_INDEXING_BLOCKS_AMOUNT__}/g" mempool-config.json
|
||||
sed -i "s/__MEMPOOL_AUTOMATIC_BLOCK_REINDEXING__/${__MEMPOOL_AUTOMATIC_BLOCK_REINDEXING__}/g" mempool-config.json
|
||||
sed -i "s!__MEMPOOL_POOLS_JSON_URL__!${__MEMPOOL_POOLS_JSON_URL__}!g" mempool-config.json
|
||||
sed -i "s!__MEMPOOL_POOLS_JSON_TREE_URL__!${__MEMPOOL_POOLS_JSON_TREE_URL__}!g" mempool-config.json
|
||||
@@ -144,11 +153,13 @@ sed -i "s!__MEMPOOL_ADVANCED_GBT_MEMPOOL__!${__MEMPOOL_ADVANCED_GBT_MEMPOOL__}!g
|
||||
sed -i "s!__MEMPOOL_ADVANCED_GBT_AUDIT__!${__MEMPOOL_ADVANCED_GBT_AUDIT__}!g" mempool-config.json
|
||||
sed -i "s!__MEMPOOL_CPFP_INDEXING__!${__MEMPOOL_CPFP_INDEXING__}!g" mempool-config.json
|
||||
sed -i "s!__MEMPOOL_MAX_BLOCKS_BULK_QUERY__!${__MEMPOOL_MAX_BLOCKS_BULK_QUERY__}!g" mempool-config.json
|
||||
sed -i "s!__MEMPOOL_DISK_CACHE_BLOCK_INTERVAL__!${__MEMPOOL_DISK_CACHE_BLOCK_INTERVAL__}!g" mempool-config.json
|
||||
|
||||
sed -i "s/__CORE_RPC_HOST__/${__CORE_RPC_HOST__}/g" mempool-config.json
|
||||
sed -i "s/__CORE_RPC_PORT__/${__CORE_RPC_PORT__}/g" mempool-config.json
|
||||
sed -i "s/__CORE_RPC_USERNAME__/${__CORE_RPC_USERNAME__}/g" mempool-config.json
|
||||
sed -i "s/__CORE_RPC_PASSWORD__/${__CORE_RPC_PASSWORD__}/g" mempool-config.json
|
||||
sed -i "s/__CORE_RPC_TIMEOUT__/${__CORE_RPC_TIMEOUT__}/g" mempool-config.json
|
||||
|
||||
sed -i "s/__ELECTRUM_HOST__/${__ELECTRUM_HOST__}/g" mempool-config.json
|
||||
sed -i "s/__ELECTRUM_PORT__/${__ELECTRUM_PORT__}/g" mempool-config.json
|
||||
@@ -160,6 +171,7 @@ sed -i "s/__SECOND_CORE_RPC_HOST__/${__SECOND_CORE_RPC_HOST__}/g" mempool-config
|
||||
sed -i "s/__SECOND_CORE_RPC_PORT__/${__SECOND_CORE_RPC_PORT__}/g" mempool-config.json
|
||||
sed -i "s/__SECOND_CORE_RPC_USERNAME__/${__SECOND_CORE_RPC_USERNAME__}/g" mempool-config.json
|
||||
sed -i "s/__SECOND_CORE_RPC_PASSWORD__/${__SECOND_CORE_RPC_PASSWORD__}/g" mempool-config.json
|
||||
sed -i "s/__SECOND_CORE_RPC_TIMEOUT__/${__SECOND_CORE_RPC_TIMEOUT__}/g" mempool-config.json
|
||||
|
||||
sed -i "s/__DATABASE_ENABLED__/${__DATABASE_ENABLED__}/g" mempool-config.json
|
||||
sed -i "s/__DATABASE_HOST__/${__DATABASE_HOST__}/g" mempool-config.json
|
||||
@@ -211,8 +223,16 @@ sed -i "s!__LIGHTNING_LOGGER_UPDATE_INTERVAL__!${__LIGHTNING_LOGGER_UPDATE_INTER
|
||||
sed -i "s!__LND_TLS_CERT_PATH__!${__LND_TLS_CERT_PATH__}!g" mempool-config.json
|
||||
sed -i "s!__LND_MACAROON_PATH__!${__LND_MACAROON_PATH__}!g" mempool-config.json
|
||||
sed -i "s!__LND_REST_API_URL__!${__LND_REST_API_URL__}!g" mempool-config.json
|
||||
sed -i "s!__LND_TIMEOUT__!${__LND_TIMEOUT__}!g" mempool-config.json
|
||||
|
||||
# CLN
|
||||
sed -i "s!__CLIGHTNING_SOCKET__!${__CLIGHTNING_SOCKET__}!g" mempool-config.json
|
||||
|
||||
# MAXMIND
|
||||
sed -i "s!__MAXMIND_ENABLED__!${__MAXMIND_ENABLED__}!g" mempool-config.json
|
||||
sed -i "s!__MAXMIND_GEOLITE2_CITY__!${__MAXMIND_GEOLITE2_CITY__}!g" mempool-config.json
|
||||
sed -i "s!__MAXMIND_GEOLITE2_ASN__!${__MAXMIND_GEOLITE2_ASN__}!g" mempool-config.json
|
||||
sed -i "s!__MAXMIND_GEOIP2_ISP__!${__MAXMIND_GEOIP2_ISP__}!g" mempool-config.json
|
||||
|
||||
|
||||
node /backend/package/index.js
|
||||
|
||||
@@ -10,6 +10,10 @@ cp /etc/nginx/nginx.conf /patch/nginx.conf
|
||||
sed -i "s/__MEMPOOL_FRONTEND_HTTP_PORT__/${__MEMPOOL_FRONTEND_HTTP_PORT__}/g" /patch/nginx.conf
|
||||
cat /patch/nginx.conf > /etc/nginx/nginx.conf
|
||||
|
||||
if [ "${LIGHTNING_DETECTED_PORT}" != "" ];then
|
||||
export LIGHTNING=true
|
||||
fi
|
||||
|
||||
# Runtime overrides - read env vars defined in docker compose
|
||||
|
||||
__TESTNET_ENABLED__=${TESTNET_ENABLED:=false}
|
||||
|
||||
@@ -3,6 +3,11 @@
|
||||
#backend
|
||||
cp ./docker/backend/* ./backend/
|
||||
|
||||
#geoip-data
|
||||
mkdir -p ./backend/GeoIP/
|
||||
wget -O ./backend/GeoIP/GeoLite2-City.mmdb https://raw.githubusercontent.com/mempool/geoip-data/master/GeoLite2-City.mmdb
|
||||
wget -O ./backend/GeoIP/GeoLite2-ASN.mmdb https://raw.githubusercontent.com/mempool/geoip-data/master/GeoLite2-ASN.mmdb
|
||||
|
||||
#frontend
|
||||
localhostIP="127.0.0.1"
|
||||
cp ./docker/frontend/* ./frontend
|
||||
|
||||
3
frontend/.gitignore
vendored
3
frontend/.gitignore
vendored
@@ -54,7 +54,8 @@ src/resources/assets-testnet.json
|
||||
src/resources/assets-testnet.minimal.json
|
||||
src/resources/pools.json
|
||||
src/resources/mining-pools/*
|
||||
src/resources/*.mp4
|
||||
src/resources/**/*.mp4
|
||||
src/resources/**/*.vtt
|
||||
|
||||
# environment config
|
||||
mempool-frontend-config.json
|
||||
|
||||
@@ -106,13 +106,15 @@ https://www.transifex.com/mempool/mempool/dashboard/
|
||||
|
||||
* Arabic @baro0k
|
||||
* Czech @pixelmade2
|
||||
* Danish @pierrevendelboe
|
||||
* German @Emzy
|
||||
* English (default)
|
||||
* Spanish @maxhodler @bisqes
|
||||
* Persian @techmix
|
||||
* French @Bayernatoor
|
||||
* Korean @kcalvinalvinn
|
||||
* Korean @kcalvinalvinn @sogoagain
|
||||
* Italian @HodlBits
|
||||
* Lithuanian @eimze21
|
||||
* Hebrew @rapidlab309
|
||||
* Georgian @wyd_idk
|
||||
* Hungarian @btcdragonlord
|
||||
|
||||
@@ -158,10 +158,10 @@ describe('Liquid', () => {
|
||||
it('show empty unblinded TX', () => {
|
||||
cy.visit(`${basePath}/tx/f2f41c0850e8e7e3f1af233161fd596662e67c11ef10ed15943884186fbb7f46#blinded=`);
|
||||
cy.waitForSkeletonGone();
|
||||
cy.get('.table-tx-vin tr:nth-child(1)').should('have.class', '');
|
||||
cy.get('.table-tx-vin tr:nth-child(1)').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.table-tx-vin tr:nth-child(1) .amount').should('contain.text', 'Confidential');
|
||||
cy.get('.table-tx-vout tr:nth-child(1)').should('have.class', '');
|
||||
cy.get('.table-tx-vout tr:nth-child(2)').should('have.class', '');
|
||||
cy.get('.table-tx-vout tr:nth-child(1)').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.table-tx-vout tr:nth-child(2)').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.table-tx-vout tr:nth-child(1) .amount').should('contain.text', 'Confidential');
|
||||
cy.get('.table-tx-vout tr:nth-child(2) .amount').should('contain.text', 'Confidential');
|
||||
});
|
||||
@@ -169,8 +169,8 @@ describe('Liquid', () => {
|
||||
it('show invalid unblinded TX hex', () => {
|
||||
cy.visit(`${basePath}/tx/f2f41c0850e8e7e3f1af233161fd596662e67c11ef10ed15943884186fbb7f46#blinded=123`);
|
||||
cy.waitForSkeletonGone();
|
||||
cy.get('.table-tx-vin tr').should('have.class', '');
|
||||
cy.get('.table-tx-vout tr').should('have.class', '');
|
||||
cy.get('.table-tx-vin tr').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.table-tx-vout tr').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.error-unblinded').contains('Error: Invalid blinding data (invalid hex)');
|
||||
});
|
||||
|
||||
|
||||
@@ -109,10 +109,10 @@ describe('Liquid Testnet', () => {
|
||||
it('show empty unblinded TX', () => {
|
||||
cy.visit(`${basePath}/tx/c3d908ab77891e4c569b0df71aae90f4720b157019ebb20db176f4f9c4d626b8#blinded=`);
|
||||
cy.waitForSkeletonGone();
|
||||
cy.get('.table-tx-vin tr:nth-child(1)').should('have.class', '');
|
||||
cy.get('.table-tx-vin tr:nth-child(1)').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.table-tx-vin tr:nth-child(1) .amount').should('contain.text', 'Confidential');
|
||||
cy.get('.table-tx-vout tr:nth-child(1)').should('have.class', '');
|
||||
cy.get('.table-tx-vout tr:nth-child(2)').should('have.class', '');
|
||||
cy.get('.table-tx-vout tr:nth-child(1)').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.table-tx-vout tr:nth-child(2)').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.table-tx-vout tr:nth-child(1) .amount').should('contain.text', 'Confidential');
|
||||
cy.get('.table-tx-vout tr:nth-child(2) .amount').should('contain.text', 'Confidential');
|
||||
});
|
||||
@@ -120,8 +120,8 @@ describe('Liquid Testnet', () => {
|
||||
it('show invalid unblinded TX hex', () => {
|
||||
cy.visit(`${basePath}/tx/2477f220eef1d03f8ffa4a2861c275d155c3562adf0d79523aeeb0c59ee611ba#blinded=5000`);
|
||||
cy.waitForSkeletonGone();
|
||||
cy.get('.table-tx-vin tr').should('have.class', '');
|
||||
cy.get('.table-tx-vout tr').should('have.class', '');
|
||||
cy.get('.table-tx-vin tr').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.table-tx-vout tr').should('have.class', 'ng-star-inserted');
|
||||
cy.get('.error-unblinded').contains('Error: Invalid blinding data (invalid hex)');
|
||||
});
|
||||
|
||||
|
||||
4
frontend/package-lock.json
generated
4
frontend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "mempool-frontend",
|
||||
"version": "2.5.0-dev",
|
||||
"version": "2.5.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "mempool-frontend",
|
||||
"version": "2.5.0-dev",
|
||||
"version": "2.5.1",
|
||||
"license": "GNU Affero General Public License v3.0",
|
||||
"dependencies": {
|
||||
"@angular-devkit/build-angular": "^14.2.10",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mempool-frontend",
|
||||
"version": "2.5.0-dev",
|
||||
"version": "2.5.1",
|
||||
"description": "Bitcoin mempool visualizer and blockchain explorer backend",
|
||||
"license": "GNU Affero General Public License v3.0",
|
||||
"homepage": "https://mempool.space",
|
||||
|
||||
@@ -139,26 +139,87 @@ export const specialBlocks = {
|
||||
'0': {
|
||||
labelEvent: 'Genesis',
|
||||
labelEventCompleted: 'The Genesis of Bitcoin',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'210000': {
|
||||
labelEvent: 'Bitcoin\'s 1st Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 25 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'420000': {
|
||||
labelEvent: 'Bitcoin\'s 2nd Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 12.5 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'630000': {
|
||||
labelEvent: 'Bitcoin\'s 3rd Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 6.25 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'709632': {
|
||||
labelEvent: 'Taproot 🌱 activation',
|
||||
labelEventCompleted: 'Taproot 🌱 has been activated!',
|
||||
networks: ['mainnet'],
|
||||
},
|
||||
'840000': {
|
||||
labelEvent: 'Bitcoin\'s 4th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 3.125 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'1050000': {
|
||||
labelEvent: 'Bitcoin\'s 5th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 1.5625 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'1260000': {
|
||||
labelEvent: 'Bitcoin\'s 6th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.78125 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'1470000': {
|
||||
labelEvent: 'Bitcoin\'s 7th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.390625 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'1680000': {
|
||||
labelEvent: 'Bitcoin\'s 8th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.1953125 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'1890000': {
|
||||
labelEvent: 'Bitcoin\'s 9th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.09765625 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'2100000': {
|
||||
labelEvent: 'Bitcoin\'s 10th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.04882812 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'2310000': {
|
||||
labelEvent: 'Bitcoin\'s 11th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.02441406 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'2520000': {
|
||||
labelEvent: 'Bitcoin\'s 12th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.01220703 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'2730000': {
|
||||
labelEvent: 'Bitcoin\'s 13th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.00610351 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'2940000': {
|
||||
labelEvent: 'Bitcoin\'s 14th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.00305175 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
},
|
||||
'3150000': {
|
||||
labelEvent: 'Bitcoin\'s 15th Halving',
|
||||
labelEventCompleted: 'Block Subsidy has halved to 0.00152587 BTC per block',
|
||||
networks: ['mainnet', 'testnet'],
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -13,7 +13,23 @@
|
||||
<p i18n>Our mempool and blockchain explorer for the Bitcoin community, focusing on the transaction fee market and multi-layer ecosystem, completely self-hosted without any trusted third-parties.</p>
|
||||
</div>
|
||||
|
||||
<video src="/resources/mempool-promo.mp4" poster="/resources/mempool-promo.jpg" controls loop playsinline [autoplay]="true" [muted]="true"></video>
|
||||
<video src="/resources/promo-video/mempool-promo.mp4" poster="/resources/promo-video/mempool-promo.jpg" controls loop playsinline [autoplay]="true" [muted]="true">
|
||||
<track label="English" kind="captions" srclang="en" src="/resources/promo-video/en.vtt" [attr.default]="showSubtitles('en') ? '' : null">
|
||||
<track label="日本語" kind="captions" srclang="ja" src="/resources/promo-video/ja.vtt" [attr.default]="showSubtitles('ja') ? '' : null">
|
||||
<track label="中文" kind="captions" srclang="zh" src="/resources/promo-video/zh.vtt" [attr.default]="showSubtitles('zh') ? '' : null">
|
||||
<track label="Svenska" kind="captions" srclang="sv" src="/resources/promo-video/sv.vtt" [attr.default]="showSubtitles('sv') ? '' : null">
|
||||
<track label="Čeština" kind="captions" srclang="cs" src="/resources/promo-video/cs.vtt" [attr.default]="showSubtitles('cs') ? '' : null">
|
||||
<track label="Suomi" kind="captions" srclang="fi" src="/resources/promo-video/fi.vtt" [attr.default]="showSubtitles('fi') ? '' : null">
|
||||
<track label="Français" kind="captions" srclang="fr" src="/resources/promo-video/fr.vtt" [attr.default]="showSubtitles('fr') ? '' : null">
|
||||
<track label="Deutsch" kind="captions" srclang="de" src="/resources/promo-video/de.vtt" [attr.default]="showSubtitles('de') ? '' : null">
|
||||
<track label="Italiano" kind="captions" srclang="it" src="/resources/promo-video/it.vtt" [attr.default]="showSubtitles('it') ? '' : null">
|
||||
<track label="Lietuvių" kind="captions" srclang="lt" src="/resources/promo-video/lt.vtt" [attr.default]="showSubtitles('lt') ? '' : null">
|
||||
<track label="Norsk" kind="captions" srclang="nb" src="/resources/promo-video/nb.vtt" [attr.default]="showSubtitles('nb') ? '' : null">
|
||||
<track label="فارسی" kind="captions" srclang="fa" src="/resources/promo-video/fa.vtt" [attr.default]="showSubtitles('fa') ? '' : null">
|
||||
<track label="Polski" kind="captions" srclang="pl" src="/resources/promo-video/pl.vtt" [attr.default]="showSubtitles('pl') ? '' : null">
|
||||
<track label="Română" kind="captions" srclang="ro" src="/resources/promo-video/ro.vtt" [attr.default]="showSubtitles('ro') ? '' : null">
|
||||
<track label="Português" kind="captions" srclang="pt" src="/resources/promo-video/pt.vtt" [attr.default]="showSubtitles('pt') ? '' : null">
|
||||
</video>
|
||||
|
||||
<div class="enterprise-sponsor" id="enterprise-sponsors">
|
||||
<h3 i18n="about.sponsors.enterprise.withRocket">Enterprise Sponsors 🚀</h3>
|
||||
@@ -185,7 +201,7 @@
|
||||
<span>Umbrel</span>
|
||||
</a>
|
||||
<a href="https://github.com/rootzoll/raspiblitz" target="_blank" title="RaspiBlitz">
|
||||
<img class="image" src="/resources/profile/raspiblitz.jpg" />
|
||||
<img class="image" src="/resources/profile/raspiblitz.svg" />
|
||||
<span>RaspiBlitz</span>
|
||||
</a>
|
||||
<a href="https://github.com/mynodebtc/mynode" target="_blank" title="MyNode">
|
||||
|
||||
@@ -68,7 +68,7 @@ export class AboutComponent implements OnInit {
|
||||
tap(() => this.goToAnchor())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
ngAfterViewInit() {
|
||||
this.goToAnchor();
|
||||
}
|
||||
@@ -90,4 +90,8 @@ export class AboutComponent implements OnInit {
|
||||
this.showNavigateToSponsor = true;
|
||||
}
|
||||
}
|
||||
|
||||
showSubtitles(language) {
|
||||
return ( this.locale.startsWith( language ) && !this.locale.startsWith('en') );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div [attr.data-cy]="'bitcoin-block-offset-' + offset + '-index-' + i"
|
||||
class="text-center bitcoin-block mined-block blockchain-blocks-offset-{{ offset }}-index-{{ i }}"
|
||||
id="bitcoin-block-{{ block.height }}" [ngStyle]="blockStyles[i]"
|
||||
[class.blink-bg]="(specialBlocks[block.height] !== undefined)">
|
||||
[class.blink-bg]="isSpecial(block.height)">
|
||||
<a draggable="false" [routerLink]="['/block/' | relativeUrl, block.id]" [state]="{ data: { block: block } }"
|
||||
class="blockLink" [ngClass]="{'disabled': (this.stateService.blockScrolling$ | async)}"> </a>
|
||||
<div [attr.data-cy]="'bitcoin-block-' + i + '-height'" class="block-height">
|
||||
|
||||
@@ -269,6 +269,10 @@ export class BlockchainBlocksComponent implements OnInit, OnChanges, OnDestroy {
|
||||
this.cd.markForCheck();
|
||||
}
|
||||
|
||||
isSpecial(height: number): boolean {
|
||||
return this.specialBlocks[height]?.networks.includes(this.stateService.network || 'mainnet') ? true : false;
|
||||
}
|
||||
|
||||
getStyleForBlock(block: BlockchainBlock, index: number, animateEnterFrom: number = 0) {
|
||||
if (!block || block.placeholder) {
|
||||
return this.getStyleForPlaceholderBlock(index, animateEnterFrom);
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
</thead>
|
||||
<tbody *ngIf="blocks$ | async as blocks; else skeleton" [style]="isLoading ? 'opacity: 0.75' : ''">
|
||||
<tr *ngFor="let block of blocks; let i= index; trackBy: trackByBlock">
|
||||
<td class="text-left" [class]="widget ? 'widget' : ''">
|
||||
<td class="height text-left" [class]="widget ? 'widget' : ''">
|
||||
<a [routerLink]="['/block' | relativeUrl, block.id]" [state]="{ data: { block: block } }">{{ block.height }}</a>
|
||||
</td>
|
||||
<td *ngIf="indexingAvailable" class="pool text-left" [ngClass]="{'widget': widget, 'legacy': !indexingAvailable}">
|
||||
@@ -89,7 +89,6 @@
|
||||
<span class="skeleton-loader" style="max-width: 75px"></span>
|
||||
</td>
|
||||
<td *ngIf="indexingAvailable" class="pool text-left" [ngClass]="{'widget': widget, 'legacy': !indexingAvailable}">
|
||||
<img width="1" height="25" style="opacity: 0">
|
||||
<span class="skeleton-loader" style="max-width: 125px"></span>
|
||||
</td>
|
||||
<td class="timestamp" *ngIf="!widget" [class]="indexingAvailable ? '' : 'legacy'">
|
||||
@@ -98,7 +97,7 @@
|
||||
<td class="mined" *ngIf="!widget" [class]="indexingAvailable ? '' : 'legacy'">
|
||||
<span class="skeleton-loader" style="max-width: 125px"></span>
|
||||
</td>
|
||||
<td *ngIf="auditAvailable" class="health text-left" [ngClass]="{'widget': widget, 'legacy': !indexingAvailable}">
|
||||
<td *ngIf="auditAvailable" class="health text-right" [ngClass]="{'widget': widget, 'legacy': !indexingAvailable}">
|
||||
<span class="skeleton-loader" style="max-width: 75px"></span>
|
||||
</td>
|
||||
<td *ngIf="indexingAvailable" class="reward text-right" [ngClass]="{'widget': widget, 'legacy': !indexingAvailable}">
|
||||
|
||||
@@ -51,7 +51,12 @@ tr, td, th {
|
||||
.pool.widget {
|
||||
width: 40%;
|
||||
padding-left: 24px;
|
||||
@media (max-width: 376px) {
|
||||
@media (min-width: 768px) AND (max-width: 926px) {
|
||||
padding-left: 0px;
|
||||
width: 60%;
|
||||
}
|
||||
@media (max-width: 430px) {
|
||||
padding-left: 0px;
|
||||
width: 60%;
|
||||
}
|
||||
}
|
||||
@@ -59,6 +64,10 @@ tr, td, th {
|
||||
display: inline-block;
|
||||
vertical-align: text-top;
|
||||
padding-left: 10px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
max-width: 160px;
|
||||
}
|
||||
|
||||
.height {
|
||||
@@ -69,6 +78,12 @@ tr, td, th {
|
||||
@media (max-width: 576px) {
|
||||
width: 10%;
|
||||
}
|
||||
@media (min-width: 768px) AND (max-width: 926px) {
|
||||
width: 30%;
|
||||
}
|
||||
@media (max-width: 430px) {
|
||||
width: 30%;
|
||||
}
|
||||
}
|
||||
.height.legacy {
|
||||
width: 15%;
|
||||
@@ -92,7 +107,7 @@ tr, td, th {
|
||||
|
||||
.mined {
|
||||
width: 13%;
|
||||
@media (max-width: 576px) {
|
||||
@media (max-width: 730px) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -138,7 +153,7 @@ tr, td, th {
|
||||
|
||||
.fees {
|
||||
width: 8%;
|
||||
@media (max-width: 650px) {
|
||||
@media (max-width: 820px) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -163,6 +178,16 @@ tr, td, th {
|
||||
width: 30%;
|
||||
padding-right: 0;
|
||||
}
|
||||
@media (min-width: 768px) AND (max-width: 926px) {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 90px;
|
||||
}
|
||||
@media (max-width: 430px) {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 90px;
|
||||
}
|
||||
}
|
||||
|
||||
.size {
|
||||
@@ -189,10 +214,10 @@ tr, td, th {
|
||||
|
||||
.health {
|
||||
width: 10%;
|
||||
@media (max-width: 1000px) {
|
||||
@media (max-width: 1105px) {
|
||||
width: 13%;
|
||||
}
|
||||
@media (max-width: 950px) {
|
||||
@media (max-width: 560px) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -202,7 +227,7 @@ tr, td, th {
|
||||
}
|
||||
.health.widget {
|
||||
width: 25%;
|
||||
@media (max-width: 1000px) {
|
||||
@media (max-width: 1105px) {
|
||||
display: none;
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
@@ -242,4 +267,4 @@ tr, td, th {
|
||||
vertical-align: middle;
|
||||
max-width: 50vw;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,17 +2,18 @@
|
||||
<table class="table latest-adjustments">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="d-none d-md-block" i18n="block.height">Height</th>
|
||||
<th i18n="mining.adjusted" class="text-left">Adjusted</th>
|
||||
<th i18n="mining.difficulty" class="text-right">Difficulty</th>
|
||||
<th i18n="mining.change" class="text-right">Change</th>
|
||||
<th class="" i18n="block.height">Height</th>
|
||||
<th class="date text-left" i18n="mining.adjusted">Adjusted</th>
|
||||
<th class="text-right" i18n="mining.difficulty">Difficulty</th>
|
||||
<th class="text-right" i18n="mining.change">Change</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody *ngIf="(hashrateObservable$ | async) as data">
|
||||
<tr *ngFor="let diffChange of data">
|
||||
<td class="d-none d-md-block"><a [routerLink]="['/block' | relativeUrl, diffChange.height]">{{ diffChange.height
|
||||
}}</a></td>
|
||||
<td class="text-left">
|
||||
<td class="">
|
||||
<a [routerLink]="['/block' | relativeUrl, diffChange.height]">{{ diffChange.height }}</a>
|
||||
</td>
|
||||
<td class="date text-left">
|
||||
<app-time kind="since" [time]="diffChange.timestamp" [fastRender]="true"></app-time>
|
||||
</td>
|
||||
<td class="text-right">{{ diffChange.difficultyShorten }}</td>
|
||||
@@ -23,8 +24,8 @@
|
||||
</tbody>
|
||||
<tbody *ngIf="isLoading">
|
||||
<tr *ngFor="let item of [1,2,3,4,5,6]">
|
||||
<td class="d-none d-md-block w-75"><span class="skeleton-loader"></span></td>
|
||||
<td class="text-left"><span class="skeleton-loader w-75"></span></td>
|
||||
<td class=""><span class="skeleton-loader"></span></td>
|
||||
<td class="date text-left"><span class="skeleton-loader w-75"></span></td>
|
||||
<td class="text-right"><span class="skeleton-loader w-75"></span></td>
|
||||
<td class="text-right"><span class="skeleton-loader w-75"></span></td>
|
||||
</tr>
|
||||
|
||||
@@ -17,3 +17,12 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.date {
|
||||
@media (min-width: 767px) AND (max-width: 991px) {
|
||||
display: none;
|
||||
}
|
||||
@media (max-width: 500px) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -47,7 +47,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="item" *ngIf="showHalving">
|
||||
<h5 class="card-title" i18n="difficulty-box.next-halving">Next Halving</h5>
|
||||
<h5 class="card-title" i18n="difficulty-box.next-halving" i18n-ngbTooltip="difficulty-box.next-halving"
|
||||
ngbTooltip="Next Halving" placement="bottom" #averagefee [disableTooltip]="!isEllipsisActive(averagefee)">Next Halving</h5>
|
||||
<div class="card-text">
|
||||
<ng-container *ngTemplateOutlet="epochData.blocksUntilHalving === 1 ? blocksSingular : blocksPlural; context: {$implicit: epochData.blocksUntilHalving }"></ng-container>
|
||||
<ng-template #blocksPlural let-i i18n="shared.blocks">{{ i }} <span class="shared-block">blocks</span></ng-template>
|
||||
@@ -77,7 +78,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<h5 class="card-title" i18n="difficulty-box.current-period">Current Period</h5>
|
||||
<h5 class="card-title" i18n="difficulty-box.next-halving">Next Halving</h5>
|
||||
<div class="card-text">
|
||||
<div class="skeleton-loader"></div>
|
||||
<div class="skeleton-loader"></div>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
.item {
|
||||
padding: 0 5px;
|
||||
width: 100%;
|
||||
max-width: 150px;
|
||||
&:nth-child(1) {
|
||||
display: none;
|
||||
@media (min-width: 485px) {
|
||||
@@ -85,6 +86,9 @@
|
||||
.card-title {
|
||||
color: #4a68b9;
|
||||
font-size: 1rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.progress {
|
||||
@@ -152,4 +156,5 @@
|
||||
|
||||
.symbol {
|
||||
font-size: 13px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -83,4 +83,8 @@ export class DifficultyMiningComponent implements OnInit {
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
isEllipsisActive(e): boolean {
|
||||
return (e.offsetWidth < e.scrollWidth);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<div class="symbol" i18n="difficulty-box.average-block-time">Average block time</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div *ngIf="epochData.remainingBlocks < 1870; else recentlyAdjusted" class="card-text" [ngStyle]="{'color': epochData.colorAdjustments}">
|
||||
<div *ngIf="epochData.remainingBlocks < 1870; else recentlyAdjusted" class="card-text bigger" [ngStyle]="{'color': epochData.colorAdjustments}">
|
||||
<span *ngIf="epochData.change > 0; else arrowDownDifficulty" >
|
||||
<fa-icon class="retarget-sign" [icon]="['fas', 'caret-up']" [fixedWidth]="true"></fa-icon>
|
||||
</span>
|
||||
|
||||
@@ -30,9 +30,14 @@
|
||||
}
|
||||
}
|
||||
.card-text {
|
||||
font-size: 20px;
|
||||
font-size: 18px;
|
||||
margin: auto;
|
||||
position: relative;
|
||||
margin-bottom: 0.2rem;
|
||||
&.bigger {
|
||||
font-size: 20px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,6 +165,7 @@
|
||||
|
||||
.symbol {
|
||||
font-size: 13px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.epoch-progress {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="mempool-blocks-container" [class.time-ltr]="timeLtr" *ngIf="(difficultyAdjustments$ | async) as da;">
|
||||
<div class="flashing">
|
||||
<ng-template ngFor let-projectedBlock [ngForOf]="mempoolBlocks$ | async" let-i="index" [ngForTrackBy]="trackByFn">
|
||||
<div [attr.data-cy]="'mempool-block-' + i" class="bitcoin-block text-center mempool-block" id="mempool-block-{{ i }}" [ngStyle]="mempoolBlockStyles[i]" [class.blink-bg]="projectedBlock.blink">
|
||||
<div @blockEntryTrigger [@.disabled]="!animateEntry" [attr.data-cy]="'mempool-block-' + i" class="bitcoin-block text-center mempool-block" id="mempool-block-{{ i }}" [ngStyle]="mempoolBlockStyles[i]" [class.blink-bg]="projectedBlock.blink">
|
||||
<a draggable="false" [routerLink]="['/mempool-block/' | relativeUrl, i]"
|
||||
class="blockLink" [ngClass]="{'disabled': (this.stateService.blockScrolling$ | async)}"> </a>
|
||||
<div class="block-body">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, Input } from '@angular/core';
|
||||
import { Subscription, Observable, fromEvent, merge, of, combineLatest, timer } from 'rxjs';
|
||||
import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
|
||||
import { Subscription, Observable, fromEvent, merge, of, combineLatest } from 'rxjs';
|
||||
import { MempoolBlock } from '../../interfaces/websocket.interface';
|
||||
import { StateService } from '../../services/state.service';
|
||||
import { Router } from '@angular/router';
|
||||
@@ -9,11 +9,18 @@ import { specialBlocks } from '../../app.constants';
|
||||
import { RelativeUrlPipe } from '../../shared/pipes/relative-url/relative-url.pipe';
|
||||
import { Location } from '@angular/common';
|
||||
import { DifficultyAdjustment } from '../../interfaces/node-api.interface';
|
||||
import { animate, style, transition, trigger } from '@angular/animations';
|
||||
|
||||
@Component({
|
||||
selector: 'app-mempool-blocks',
|
||||
templateUrl: './mempool-blocks.component.html',
|
||||
styleUrls: ['./mempool-blocks.component.scss'],
|
||||
animations: [trigger('blockEntryTrigger', [
|
||||
transition(':enter', [
|
||||
style({ transform: 'translateX(-155px)' }),
|
||||
animate('2s 0s ease', style({ transform: '' })),
|
||||
]),
|
||||
])],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
})
|
||||
export class MempoolBlocksComponent implements OnInit, OnDestroy {
|
||||
@@ -32,12 +39,14 @@ export class MempoolBlocksComponent implements OnInit, OnDestroy {
|
||||
isLoadingWebsocketSubscription: Subscription;
|
||||
blockSubscription: Subscription;
|
||||
networkSubscription: Subscription;
|
||||
chainTipSubscription: Subscription;
|
||||
network = '';
|
||||
now = new Date().getTime();
|
||||
timeOffset = 0;
|
||||
showMiningInfo = false;
|
||||
timeLtrSubscription: Subscription;
|
||||
timeLtr: boolean;
|
||||
animateEntry: boolean = false;
|
||||
|
||||
blockWidth = 125;
|
||||
blockPadding = 30;
|
||||
@@ -53,6 +62,7 @@ export class MempoolBlocksComponent implements OnInit, OnDestroy {
|
||||
|
||||
resetTransitionTimeout: number;
|
||||
|
||||
chainTip: number = -1;
|
||||
blockIndex = 1;
|
||||
|
||||
constructor(
|
||||
@@ -69,6 +79,8 @@ export class MempoolBlocksComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.chainTip = this.stateService.latestBlockHeight;
|
||||
|
||||
if (['', 'testnet', 'signet'].includes(this.stateService.network)) {
|
||||
this.enabledMiningInfoIfNeeded(this.location.path());
|
||||
this.location.onUrlChange((url) => this.enabledMiningInfoIfNeeded(url));
|
||||
@@ -116,9 +128,7 @@ export class MempoolBlocksComponent implements OnInit, OnDestroy {
|
||||
mempoolBlocks.forEach((block, i) => {
|
||||
block.index = this.blockIndex + i;
|
||||
block.height = lastBlock.height + i + 1;
|
||||
if (this.stateService.network === '') {
|
||||
block.blink = specialBlocks[block.height] ? true : false;
|
||||
}
|
||||
block.blink = specialBlocks[block.height]?.networks.includes(this.stateService.network || 'mainnet') ? true : false;
|
||||
});
|
||||
|
||||
const stringifiedBlocks = JSON.stringify(mempoolBlocks);
|
||||
@@ -155,11 +165,24 @@ export class MempoolBlocksComponent implements OnInit, OnDestroy {
|
||||
|
||||
this.blockSubscription = this.stateService.blocks$
|
||||
.subscribe(([block]) => {
|
||||
if (block?.extras?.matchRate >= 66 && !this.tabHidden) {
|
||||
if (this.chainTip === -1) {
|
||||
this.animateEntry = block.height === this.stateService.latestBlockHeight;
|
||||
} else {
|
||||
this.animateEntry = block.height > this.chainTip;
|
||||
}
|
||||
|
||||
this.chainTip = this.stateService.latestBlockHeight;
|
||||
if ((block?.extras?.similarity == null || block?.extras?.similarity > 0.5) && !this.tabHidden) {
|
||||
this.blockIndex++;
|
||||
}
|
||||
});
|
||||
|
||||
this.chainTipSubscription = this.stateService.chainTip$.subscribe((height) => {
|
||||
if (this.chainTip === -1) {
|
||||
this.chainTip = height;
|
||||
}
|
||||
});
|
||||
|
||||
this.networkSubscription = this.stateService.networkChanged$
|
||||
.subscribe((network) => this.network = network);
|
||||
|
||||
@@ -195,11 +218,12 @@ export class MempoolBlocksComponent implements OnInit, OnDestroy {
|
||||
this.blockSubscription.unsubscribe();
|
||||
this.networkSubscription.unsubscribe();
|
||||
this.timeLtrSubscription.unsubscribe();
|
||||
this.chainTipSubscription.unsubscribe();
|
||||
clearTimeout(this.resetTransitionTimeout);
|
||||
}
|
||||
|
||||
trackByFn(index: number, block: MempoolBlock) {
|
||||
return block.index;
|
||||
return (block.isStack) ? 'stack' : block.index;
|
||||
}
|
||||
|
||||
reduceMempoolBlocksToFitScreen(blocks: MempoolBlock[]): MempoolBlock[] {
|
||||
@@ -216,6 +240,9 @@ export class MempoolBlocksComponent implements OnInit, OnDestroy {
|
||||
lastBlock.medianFee = this.median(lastBlock.feeRange);
|
||||
lastBlock.totalFees += block.totalFees;
|
||||
}
|
||||
if (blocks.length) {
|
||||
blocks[blocks.length - 1].isStack = blocks[blocks.length - 1].blockVSize > this.stateService.blockVSize;
|
||||
}
|
||||
return blocks;
|
||||
}
|
||||
|
||||
@@ -334,4 +361,4 @@ export class MempoolBlocksComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
return emptyBlocks;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,7 @@
|
||||
</div>
|
||||
|
||||
<div class="card-header" *ngIf="!widget">
|
||||
<div class="d-flex d-md-block align-items-baseline">
|
||||
<div class="d-flex d-md-table-cell align-items-baseline">
|
||||
<span i18n="mining.pools">Pools Ranking</span>
|
||||
<button class="btn p-0 pl-2" style="margin: 0 0 4px 0px" (click)="onSaveChart()">
|
||||
<fa-icon [icon]="['fas', 'download']" [fixedWidth]="true"></fa-icon>
|
||||
@@ -87,19 +87,19 @@
|
||||
<table *ngIf="widget === false" class="table table-borderless text-center pools-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="d-none d-md-block" i18n="mining.rank">Rank</th>
|
||||
<th class="d-none d-md-table-cell" i18n="mining.rank">Rank</th>
|
||||
<th class=""></th>
|
||||
<th class="" i18n="mining.pool-name">Pool</th>
|
||||
<th class="" *ngIf="this.miningWindowPreference === '24h'" i18n="mining.hashrate">Hashrate</th>
|
||||
<th class="" i18n="master-page.blocks">Blocks</th>
|
||||
<th *ngIf="auditAvailable" class="health text-right widget" i18n="latest-blocks.avg_health"
|
||||
i18n-ngbTooltip="latest-blocks.avg_health" ngbTooltip="Avg Health" placement="bottom" #health [disableTooltip]="!isEllipsisActive(health)">Avg Health</th>
|
||||
<th class="d-none d-md-block" i18n="mining.empty-blocks">Empty blocks</th>
|
||||
<th class="d-none d-md-table-cell" i18n="mining.empty-blocks">Empty blocks</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody [attr.data-cy]="'pools-table'" *ngIf="(miningStatsObservable$ | async) as miningStats">
|
||||
<tr *ngFor="let pool of miningStats.pools">
|
||||
<td class="d-none d-md-block">{{ pool.rank }}</td>
|
||||
<td class="d-none d-md-table-cell">{{ pool.rank }}</td>
|
||||
<td class="text-right">
|
||||
<img width="25" height="25" src="{{ pool.logo }}" [alt]="pool.name + ' mining pool logo'" onError="this.src = '/resources/mining-pools/default.svg'">
|
||||
</td>
|
||||
@@ -107,7 +107,7 @@
|
||||
<td class="" *ngIf="this.miningWindowPreference === '24h'">{{ pool.lastEstimatedHashrate }} {{
|
||||
miningStats.miningUnits.hashrateUnit }}</td>
|
||||
<td class="d-flex justify-content-center">
|
||||
{{ pool.blockCount }}<span class="d-none d-md-block"> ({{ pool.share }}%)</span>
|
||||
{{ pool.blockCount }}<span class="d-none d-md-table-cell"> ({{ pool.share }}%)</span>
|
||||
</td>
|
||||
<td *ngIf="auditAvailable" class="health text-right" [ngClass]="{'widget': widget, 'legacy': !indexingAvailable}">
|
||||
<a
|
||||
@@ -121,16 +121,16 @@
|
||||
<span class="health-badge badge badge-secondary" i18n="unknown">Unknown</span>
|
||||
</ng-template>
|
||||
</td>
|
||||
<td class="d-none d-md-block">{{ pool.emptyBlocks }} ({{ pool.emptyBlockRatio }}%)</td>
|
||||
<td class="d-none d-md-table-cell">{{ pool.emptyBlocks }} ({{ pool.emptyBlockRatio }}%)</td>
|
||||
</tr>
|
||||
<tr style="border-top: 1px solid #555">
|
||||
<td class="d-none d-md-block"></td>
|
||||
<td class="d-none d-md-table-cell"></td>
|
||||
<td class="text-right"></td>
|
||||
<td class=""><b i18n="mining.all-miners">All miners</b></td>
|
||||
<td class="" *ngIf="this.miningWindowPreference === '24h'"><b>{{ miningStats.lastEstimatedHashrate}} {{
|
||||
miningStats.miningUnits.hashrateUnit }}</b></td>
|
||||
<td class=""><b>{{ miningStats.blockCount }}</b></td>
|
||||
<td class="d-none d-md-block"><b>{{ miningStats.totalEmptyBlock }} ({{ miningStats.totalEmptyBlockRatio
|
||||
<td class="d-none d-md-table-cell"><b>{{ miningStats.totalEmptyBlock }} ({{ miningStats.totalEmptyBlockRatio
|
||||
}}%)</b></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -86,11 +86,6 @@ export class PoolPreviewComponent implements OnInit {
|
||||
regexes += regex + '", "';
|
||||
}
|
||||
poolStats.pool.regexes = regexes.slice(0, -3);
|
||||
poolStats.pool.addresses = poolStats.pool.addresses;
|
||||
|
||||
if (poolStats.reportedHashrate) {
|
||||
poolStats.luck = poolStats.estimatedHashrate / poolStats.reportedHashrate * 100;
|
||||
}
|
||||
|
||||
this.openGraphService.waitOver('pool-stats-' + this.slug);
|
||||
|
||||
|
||||
@@ -38,12 +38,12 @@
|
||||
<tr *ngIf="!isMobile()" class="taller-row">
|
||||
<td class="label addresses" i18n="mining.addresses">Addresses</td>
|
||||
<td *ngIf="poolStats.pool.addresses.length else nodata" style="padding-top: 25px">
|
||||
<a [routerLink]="['/address' | relativeUrl, poolStats.pool.addresses[0]]" class="first-address">
|
||||
<a class="addresses-data" [routerLink]="['/address' | relativeUrl, poolStats.pool.addresses[0]]">
|
||||
{{ poolStats.pool.addresses[0] }}
|
||||
</a>
|
||||
<div>
|
||||
<div #collapse="ngbCollapse" [(ngbCollapse)]="gfg">
|
||||
<a *ngFor="let address of poolStats.pool.addresses | slice: 1"
|
||||
<a class="addresses-data" *ngFor="let address of poolStats.pool.addresses | slice: 1"
|
||||
[routerLink]="['/address' | relativeUrl, address]">{{
|
||||
address }}<br></a>
|
||||
</div>
|
||||
@@ -67,13 +67,13 @@
|
||||
[attr.aria-expanded]="!gfg" aria-controls="collapseExample">
|
||||
<span i18n="show-all">Show all</span> ({{ poolStats.pool.addresses.length }})
|
||||
</button>
|
||||
<a [routerLink]="['/address' | relativeUrl, poolStats.pool.addresses[0]]">
|
||||
{{ poolStats.pool.addresses[0] | shortenString: 40 }}
|
||||
<a class="addresses-data" [routerLink]="['/address' | relativeUrl, poolStats.pool.addresses[0]]">
|
||||
{{ poolStats.pool.addresses[0] | shortenString: 30 }}
|
||||
</a>
|
||||
<div #collapse="ngbCollapse" [(ngbCollapse)]="gfg" style="width: 100%">
|
||||
<a *ngFor="let address of poolStats.pool.addresses | slice: 1"
|
||||
<a class="addresses-data" *ngFor="let address of poolStats.pool.addresses | slice: 1"
|
||||
[routerLink]="['/address' | relativeUrl, address]">{{
|
||||
address | shortenString: 40 }}<br></a>
|
||||
address | shortenString: 30 }}<br></a>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
@@ -88,22 +88,25 @@
|
||||
|
||||
<!-- Hashrate desktop -->
|
||||
<tr *ngIf="!isMobile()" class="taller-row">
|
||||
<td class="label" i18n="mining.hashrate-24h">Hashrate (24h)</td>
|
||||
<td class="data">
|
||||
<table class="table table-xs table-data">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="block-count-title" style="width: 37%" i18n="mining.estimated">Estimated</th>
|
||||
<th scope="col" class="block-count-title" style="width: 37%" i18n="mining.reported">Reported</th>
|
||||
<th scope="col" class="block-count-title" style="width: 26%" i18n="mining.luck">Luck</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.reward">Reward</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.hashrate">Hashrate (24h)</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="latest-blocks.avg_health" *ngIf="auditAvailable">Avg Health</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<td>{{ poolStats.estimatedHashrate | amountShortener : 1 : 'H/s' }}</td>
|
||||
<ng-template *ngIf="poolStats.luck; else noreported">
|
||||
<td>{{ poolStats.reportedHashrate | amountShortener : 1 : 'H/s' }}</td>
|
||||
<td>{{ formatNumber(poolStats.luck, this.locale, '1.2-2') }}%</td>
|
||||
</ng-template>
|
||||
<td class="text-center"><app-amount [satoshis]="poolStats.totalReward" digitsInfo="1.0-0" [noFiat]="true"></app-amount></td>
|
||||
<td class="text-center">{{ poolStats.estimatedHashrate | amountShortener : 1 : 'H/s' }}</td>
|
||||
<td class="text-center" *ngIf="auditAvailable; else emptyTd"><span class="health-badge badge" [class.badge-success]="poolStats.avgBlockHealth >= 99"
|
||||
[class.badge-warning]="poolStats.avgBlockHealth >= 75 && poolStats.avgBlockHealth < 99" [class.badge-danger]="poolStats.avgBlockHealth < 75"
|
||||
*ngIf="poolStats.avgBlockHealth != null; else nullHealth">{{ poolStats.avgBlockHealth }}%</span>
|
||||
<ng-template #nullHealth>
|
||||
<span class="health-badge badge badge-secondary" i18n="unknown">Unknown</span>
|
||||
</ng-template>
|
||||
</td>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
@@ -111,49 +114,46 @@
|
||||
<!-- Hashrate mobile -->
|
||||
<tr *ngIf="isMobile()">
|
||||
<td colspan="2">
|
||||
<span class="label" i18n="mining.hashrate-24h">Hashrate (24h)</span>
|
||||
<table class="table table-xs table-data">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="block-count-title" style="width: 33%" i18n="mining.estimated">Estimated</th>
|
||||
<th scope="col" class="block-count-title" style="width: 37%" i18n="mining.reported">Reported</th>
|
||||
<th scope="col" class="block-count-title" style="width: 30%" i18n="mining.luck">Luck</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.reward">Reward</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.hashrate">Hashrate (24h)</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="latest-blocks.avg_health" *ngIf="auditAvailable">Avg Health</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<td>{{ poolStats.estimatedHashrate | amountShortener : 1 : 'H/s' }}</td>
|
||||
<ng-template *ngIf="poolStats.luck; else noreported">
|
||||
<td>{{ poolStats.reportedHashrate | amountShortener : 1 : 'H/s' }}</td>
|
||||
<td>{{ formatNumber(poolStats.luck, this.locale, '1.2-2') }}%</td>
|
||||
</ng-template>
|
||||
<td class="text-center"><app-amount [satoshis]="poolStats.totalReward" digitsInfo="1.0-0" [noFiat]="true"></app-amount></td>
|
||||
<td class="text-center">{{ poolStats.estimatedHashrate | amountShortener : 1 : 'H/s' }}</td>
|
||||
<td *ngIf="auditAvailable; else emptyTd" class="text-center"><span class="health-badge badge" [class.badge-success]="poolStats.avgBlockHealth >= 99"
|
||||
[class.badge-warning]="poolStats.avgBlockHealth >= 75 && poolStats.avgBlockHealth < 99" [class.badge-danger]="poolStats.avgBlockHealth < 75"
|
||||
*ngIf="poolStats.avgBlockHealth != null; else nullHealth">{{ poolStats.avgBlockHealth }}%</span>
|
||||
<ng-template #nullHealth>
|
||||
<span class="health-badge badge badge-secondary" i18n="unknown">Unknown</span>
|
||||
</ng-template>
|
||||
</td>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<ng-template #noreported>
|
||||
<td>~</td>
|
||||
<td>~</td>
|
||||
</ng-template>
|
||||
|
||||
<!-- Mined blocks desktop -->
|
||||
<tr *ngIf="!isMobile()" class="taller-row">
|
||||
<td class="label" i18n="mining.mined-blocks">Mined blocks</td>
|
||||
<td class="data">
|
||||
<table class="table table-xs table-data">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="block-count-title" style="width: 37%" i18n="24h">24h</th>
|
||||
<th scope="col" class="block-count-title" style="width: 37%" i18n="1w">1w</th>
|
||||
<th scope="col" class="block-count-title" style="width: 26%" i18n="all">All</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="24h">Blocks 24h</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="1w">1w</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="all">All</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<td>{{ formatNumber(poolStats.blockCount['24h'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
<td class="text-center">{{ formatNumber(poolStats.blockCount['24h'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
poolStats.blockShare['24h'], this.locale, '1.0-0') }}%)</td>
|
||||
<td>{{ formatNumber(poolStats.blockCount['1w'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
<td class="text-center">{{ formatNumber(poolStats.blockCount['1w'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
poolStats.blockShare['1w'], this.locale, '1.0-0') }}%)</td>
|
||||
<td>{{ formatNumber(poolStats.blockCount['all'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
<td class="text-center">{{ formatNumber(poolStats.blockCount['all'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
poolStats.blockShare['all'], this.locale, '1.0-0') }}%)</td>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -162,21 +162,20 @@
|
||||
<!-- Mined blocks mobile -->
|
||||
<tr *ngIf="isMobile()">
|
||||
<td colspan=2>
|
||||
<span class="label" i18n="mining.mined-blocks">Mined blocks</span>
|
||||
<table class="table table-xs table-data">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="block-count-title" style="width: 33%" i18n="24h">24h</th>
|
||||
<th scope="col" class="block-count-title" style="width: 37%" i18n="1w">1w</th>
|
||||
<th scope="col" class="block-count-title" style="width: 30%" i18n="all">All</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="24h">Blocks 24h</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="1w">1w</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="all">All</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<td>{{ formatNumber(poolStats.blockCount['24h'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
<td class="text-center">{{ formatNumber(poolStats.blockCount['24h'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
poolStats.blockShare['24h'], this.locale, '1.0-0') }}%)</td>
|
||||
<td>{{ formatNumber(poolStats.blockCount['1w'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
<td class="text-center">{{ formatNumber(poolStats.blockCount['1w'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
poolStats.blockShare['1w'], this.locale, '1.0-0') }}%)</td>
|
||||
<td>{{ formatNumber(poolStats.blockCount['all'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
<td class="text-center">{{ formatNumber(poolStats.blockCount['all'], this.locale, '1.0-0') }} ({{ formatNumber(100 *
|
||||
poolStats.blockShare['all'], this.locale, '1.0-0') }}%)</td>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -213,8 +212,9 @@
|
||||
<th class="timestamp" i18n="latest-blocks.timestamp">Timestamp</th>
|
||||
<th class="mined" i18n="latest-blocks.mined">Mined</th>
|
||||
<th class="coinbase text-left" i18n="latest-blocks.coinbasetag">Coinbase tag</th>
|
||||
<th *ngIf="auditAvailable" class="health text-right" i18n="latest-blocks.health">Health</th>
|
||||
<th class="reward text-right" i18n="latest-blocks.reward">Reward</th>
|
||||
<th class="fees text-right" i18n="latest-blocks.fees">Fees</th>
|
||||
<th *ngIf="!auditAvailable" class="fees text-right" i18n="latest-blocks.fees">Fees</th>
|
||||
<th class="txs text-right" i18n="dashboard.txs">TXs</th>
|
||||
<th class="size" i18n="latest-blocks.size">Size</th>
|
||||
</thead>
|
||||
@@ -234,10 +234,24 @@
|
||||
{{ block.extras.coinbaseRaw | hex2ascii }}
|
||||
</span>
|
||||
</td>
|
||||
<td *ngIf="auditAvailable" class="health text-right">
|
||||
<a
|
||||
class="health-badge badge"
|
||||
[class.badge-success]="block.extras.matchRate >= 99"
|
||||
[class.badge-warning]="block.extras.matchRate >= 75 && block.extras.matchRate < 99"
|
||||
[class.badge-danger]="block.extras.matchRate < 75"
|
||||
[routerLink]="block.extras.matchRate != null ? ['/block/' | relativeUrl, block.id] : null"
|
||||
[state]="{ data: { block: block } }"
|
||||
*ngIf="block.extras.matchRate != null; else nullHealth"
|
||||
>{{ block.extras.matchRate }}%</a>
|
||||
<ng-template #nullHealth>
|
||||
<span class="health-badge badge badge-secondary" i18n="unknown">Unknown</span>
|
||||
</ng-template>
|
||||
</td>
|
||||
<td class="reward text-right">
|
||||
<app-amount [satoshis]="block.extras.reward" digitsInfo="1.2-2" [noFiat]="true"></app-amount>
|
||||
</td>
|
||||
<td class="fees text-right">
|
||||
<td *ngIf="!auditAvailable" class="fees text-right">
|
||||
<app-amount [satoshis]="block.extras.totalFees" digitsInfo="1.2-2" [noFiat]="true"></app-amount>
|
||||
</td>
|
||||
<td class="txs text-right">
|
||||
@@ -364,24 +378,23 @@
|
||||
|
||||
<!-- Hashrate desktop -->
|
||||
<tr *ngIf="!isMobile()" class="taller-row">
|
||||
<td class="label" i18n="mining.hashrate-24h">Hashrate (24h)</td>
|
||||
<td class="data">
|
||||
<table class="table table-xs table-data text-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="block-count-title" style="width: 37%" i18n="mining.estimated">Estimated</th>
|
||||
<th scope="col" class="block-count-title" style="width: 37%" i18n="mining.reported">Reported</th>
|
||||
<th scope="col" class="block-count-title" style="width: 26%" i18n="mining.luck">Luck</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.total-reward">Reward</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.estimated">Hashrate (24h)</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.luck" *ngIf="auditAvailable">Avg Health</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
<td>
|
||||
<td class="text-center" *ngIf="auditAvailable">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
</tbody>
|
||||
@@ -391,23 +404,22 @@
|
||||
<!-- Hashrate mobile -->
|
||||
<tr *ngIf="isMobile()">
|
||||
<td colspan="2">
|
||||
<span class="label" i18n="mining.hashrate-24h">Hashrate (24h)</span>
|
||||
<table class="table table-xs table-data text-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="block-count-title" style="width: 33%" i18n="mining.estimated">Estimated</th>
|
||||
<th scope="col" class="block-count-title" style="width: 37%" i18n="mining.reported">Reported</th>
|
||||
<th scope="col" class="block-count-title" style="width: 30%" i18n="mining.luck">Luck</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.total-reward">Reward</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.estimated">Hashrate (24h)</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="mining.luck" *ngIf="auditAvailable">Avg Health</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
<td>
|
||||
<td class="text-center" *ngIf="auditAvailable">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
</tbody>
|
||||
@@ -417,24 +429,23 @@
|
||||
|
||||
<!-- Mined blocks desktop -->
|
||||
<tr *ngIf="!isMobile()" class="taller-row">
|
||||
<td class="label" i18n="mining.mined-blocks">Mined blocks</td>
|
||||
<td class="data">
|
||||
<table class="table table-xs table-data text-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="block-count-title" style="width: 37%">24h</th>
|
||||
<th scope="col" class="block-count-title" style="width: 37%">1w</th>
|
||||
<th scope="col" class="block-count-title" style="width: 26%" i18n="all">All</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="24h">Blocks 24h</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="1w">1w</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="all">All</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
</tbody>
|
||||
@@ -444,23 +455,22 @@
|
||||
<!-- Mined blocks mobile -->
|
||||
<tr *ngIf="isMobile()">
|
||||
<td colspan=2>
|
||||
<span class="label" i18n="mining.mined-blocks">Mined blocks</span>
|
||||
<table class="table table-xs table-data text-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="block-count-title" style="width: 33%">24h</th>
|
||||
<th scope="col" class="block-count-title" style="width: 37%">1w</th>
|
||||
<th scope="col" class="block-count-title" style="width: 30%" i18n="all">All</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="24h">Blocks 24h</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="1w">1w</th>
|
||||
<th scope="col" class="block-count-title text-center" style="width: 33%" i18n="all">All</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
<td>
|
||||
<td class="text-center">
|
||||
<div class="skeleton-loader data"></div>
|
||||
</td>
|
||||
</tbody>
|
||||
@@ -475,4 +485,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #emptyTd>
|
||||
<td class="text-center"></td>
|
||||
</ng-template>
|
||||
@@ -68,6 +68,11 @@ div.scrollable {
|
||||
vertical-align: top;
|
||||
padding-top: 25px;
|
||||
}
|
||||
.addresses-data {
|
||||
vertical-align: top;
|
||||
font-family: monospace;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.data {
|
||||
text-align: right;
|
||||
@@ -100,7 +105,7 @@ div.scrollable {
|
||||
@media (max-width: 875px) {
|
||||
padding-left: 50px;
|
||||
}
|
||||
@media (max-width: 650px) {
|
||||
@media (max-width: 685px) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -118,7 +123,7 @@ div.scrollable {
|
||||
padding-right: 10px;
|
||||
}
|
||||
@media (max-width: 875px) {
|
||||
padding-right: 50px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
@media (max-width: 567px) {
|
||||
padding-right: 10px;
|
||||
@@ -186,10 +191,6 @@ div.scrollable {
|
||||
.block-count-title {
|
||||
color: #4a68b9;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
@media (max-width: 767.98px) {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.table-data tr {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ChangeDetectionStrategy, Component, Inject, Input, LOCALE_ID, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { EChartsOption, graphic } from 'echarts';
|
||||
import { BehaviorSubject, Observable, timer } from 'rxjs';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { distinctUntilChanged, map, share, switchMap, tap } from 'rxjs/operators';
|
||||
import { BlockExtended, PoolStat } from '../../interfaces/node-api.interface';
|
||||
import { ApiService } from '../../services/api.service';
|
||||
@@ -35,6 +35,8 @@ export class PoolComponent implements OnInit {
|
||||
blocks: BlockExtended[] = [];
|
||||
slug: string = undefined;
|
||||
|
||||
auditAvailable = false;
|
||||
|
||||
loadMoreSubject: BehaviorSubject<number> = new BehaviorSubject(this.blocks[this.blocks.length - 1]?.height);
|
||||
|
||||
constructor(
|
||||
@@ -44,6 +46,7 @@ export class PoolComponent implements OnInit {
|
||||
public stateService: StateService,
|
||||
private seoService: SeoService,
|
||||
) {
|
||||
this.auditAvailable = this.stateService.env.AUDIT;
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
@@ -74,11 +77,6 @@ export class PoolComponent implements OnInit {
|
||||
regexes += regex + '", "';
|
||||
}
|
||||
poolStats.pool.regexes = regexes.slice(0, -3);
|
||||
poolStats.pool.addresses = poolStats.pool.addresses;
|
||||
|
||||
if (poolStats.reportedHashrate) {
|
||||
poolStats.luck = poolStats.estimatedHashrate / poolStats.reportedHashrate * 100;
|
||||
}
|
||||
|
||||
return Object.assign({
|
||||
logo: `/resources/mining-pools/` + poolStats.pool.name.toLowerCase().replace(' ', '').replace('.', '') + '.svg'
|
||||
|
||||
@@ -50,14 +50,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<h5 class="card-title" i18n="mining.rewards-per-tx">Reward Per Tx</h5>
|
||||
<h5 class="card-title" i18n="mining.fees-per-block">Avg Block Fees</h5>
|
||||
<div class="card-text">
|
||||
<div class="skeleton-loader"></div>
|
||||
<div class="skeleton-loader"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<h5 class="card-title" i18n="mining.average-fee">Reward Per Tx</h5>
|
||||
<h5 class="card-title" i18n="mining.average-fee">Avg Tx Fee</h5>
|
||||
<div class="card-text">
|
||||
<div class="skeleton-loader"></div>
|
||||
<div class="skeleton-loader"></div>
|
||||
|
||||
@@ -85,21 +85,20 @@ export class StartComponent implements OnInit, OnDestroy {
|
||||
});
|
||||
this.stateService.blocks$
|
||||
.subscribe((blocks: any) => {
|
||||
if (this.stateService.network !== '') {
|
||||
return;
|
||||
}
|
||||
this.countdown = 0;
|
||||
const block = blocks[0];
|
||||
|
||||
for (const sb in specialBlocks) {
|
||||
const height = parseInt(sb, 10);
|
||||
const diff = height - block.height;
|
||||
if (diff > 0 && diff <= 1008) {
|
||||
this.countdown = diff;
|
||||
this.eventName = specialBlocks[sb].labelEvent;
|
||||
if (specialBlocks[sb].networks.includes(this.stateService.network || 'mainnet')) {
|
||||
const height = parseInt(sb, 10);
|
||||
const diff = height - block.height;
|
||||
if (diff > 0 && diff <= 1008) {
|
||||
this.countdown = diff;
|
||||
this.eventName = specialBlocks[sb].labelEvent;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (specialBlocks[block.height]) {
|
||||
if (specialBlocks[block.height] && specialBlocks[block.height].networks.includes(this.stateService.network || 'mainnet')) {
|
||||
this.specialEvent = true;
|
||||
this.eventName = specialBlocks[block.height].labelEventCompleted;
|
||||
setTimeout(() => {
|
||||
|
||||
@@ -184,9 +184,9 @@ export class TransactionsListComponent implements OnInit, OnChanges {
|
||||
onScroll(): void {
|
||||
const scrollHeight = document.body.scrollHeight;
|
||||
const scrollTop = document.documentElement.scrollTop;
|
||||
if (scrollHeight > 0){
|
||||
if (scrollHeight > 0) {
|
||||
const percentageScrolled = scrollTop * 100 / scrollHeight;
|
||||
if (percentageScrolled > 70){
|
||||
if (percentageScrolled > 50) {
|
||||
this.loadMore.emit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8859,6 +8859,21 @@ export const faqData = [
|
||||
fragment: "what-is-full-mempool",
|
||||
title: "What does it mean for the mempool to be \"full\"?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "advanced",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "how-big-is-mempool-used-by-mempool.space",
|
||||
title: "How big is the mempool used by mempool.space?",
|
||||
options: { officialOnly: true },
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "advanced",
|
||||
showConditions: bitcoinNetworks,
|
||||
fragment: "what-is-memory-usage",
|
||||
title: "What is memory usage?",
|
||||
},
|
||||
{
|
||||
type: "endpoint",
|
||||
category: "advanced",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div *ngFor="let item of tabData">
|
||||
<p *ngIf="( item.type === 'category' ) && ( item.showConditions.indexOf(network.val) > -1 )">{{ item.title }}</p>
|
||||
<a *ngIf="( item.type !== 'category' ) && ( item.showConditions.indexOf(network.val) > -1 ) && ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled ) )" [routerLink]="['./']" fragment="{{ item.fragment }}" (click)="navLinkClick($event)">{{ item.title }}</a>
|
||||
<a *ngIf="( item.type !== 'category' ) && ( item.showConditions.indexOf(network.val) > -1 ) && ( !item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ) || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled ) )" [routerLink]="['./']" fragment="{{ item.fragment }}" (click)="navLinkClick($event)">{{ item.title }}</a>
|
||||
</div>
|
||||
|
||||
@@ -16,6 +16,7 @@ export class ApiDocsNavComponent implements OnInit {
|
||||
env: Env;
|
||||
tabData: any[];
|
||||
auditEnabled: boolean;
|
||||
officialMempoolInstance: boolean;
|
||||
|
||||
constructor(
|
||||
private stateService: StateService
|
||||
@@ -23,6 +24,7 @@ export class ApiDocsNavComponent implements OnInit {
|
||||
|
||||
ngOnInit(): void {
|
||||
this.env = this.stateService.env;
|
||||
this.officialMempoolInstance = this.env.OFFICIAL_MEMPOOL_SPACE;
|
||||
this.auditEnabled = this.env.AUDIT;
|
||||
if (this.whichTab === 'rest') {
|
||||
this.tabData = restApiDocsData;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
</div>
|
||||
|
||||
<div class="doc-item-container" *ngFor="let item of faq">
|
||||
<div *ngIf="!item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled )">
|
||||
<div *ngIf="!item.hasOwnProperty('options') || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('officialOnly') && item.options.officialOnly && officialMempoolInstance ) || ( item.hasOwnProperty('options') && item.options.hasOwnProperty('auditOnly') && item.options.auditOnly && auditEnabled )">
|
||||
<h3 *ngIf="item.type === 'category'">{{ item.title }}</h3>
|
||||
<div *ngIf="item.type !== 'category'" class="endpoint-container" id="{{ item.fragment }}">
|
||||
<a id="{{ item.fragment + '-tab-header' }}" class="section-header" (click)="anchorLinkClick( $event )" [routerLink]="['./']" fragment="{{ item.fragment }}"><table><tr><td>{{ item.title }}</td><td><span>{{ item.category }}</span></td></tr></table></a>
|
||||
@@ -207,6 +207,18 @@
|
||||
<p>When a Bitcoin transaction is made, it is stored in a Bitcoin node's mempool before it is confirmed into a block. When the rate of incoming transactions exceeds the rate transactions are confirmed, the mempool grows in size.</p><p>By default, Bitcoin Core allocates 300MB of memory for its mempool, so when a node's mempool grows big enough to use all 300MB of allocated memory, we say it's "full".</p><p>Once a node's mempool is using all of its allocated memory, it will start rejecting new transactions below a certain feerate threshold—so when this is the case, be extra sure to set a feerate that (at a minimum) exceeds that threshold. The current threshold feerate (and memory usage) are displayed right on Mempool's front page.</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="how-big-is-mempool-used-by-mempool.space">
|
||||
<p>mempool.space uses multiple Bitcoin nodes to obtain data: some with the default 300MB mempool memory limit (call these Small Nodes) and others with a much larger mempool memory limit (call these Big Nodes).</p>
|
||||
<p>Many nodes on the Bitcoin network are configured to run with the default 300MB mempool memory setting. When all 300MB of memory are used up, such nodes will reject transactions below a certain threshold feerate. Running Small Nodes allows mempool.space to tell you what this threshold feerate is—this is the "Purging" feerate that shows on the front page when mempools are full, which you can use to be reasonably sure that your transaction will be widely propagated.</p>
|
||||
<p>Big Node mempools are so big that they don't need to reject (or purge) transactions. Such nodes allow for mempool.space to provide you with information on any pending transaction it has received—no matter how congested the mempool is, and no matter how low-feerate or low-priority the transaction is.</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="what-is-memory-usage">
|
||||
<p>Memory usage on the front page refers to the real-time amount of system memory used by a Bitcoin node's mempool. This memory usage number is always higher than the total size of all pending transactions in the mempool due to indexes, pointers, and other overhead used by Bitcoin Core for storage and processing.</p>
|
||||
<p>mempool.space shows the memory usage of a Bitcoin node that has a very high mempool memory limit. As a result, when mempools fill up, you may notice memory usage on mempool.space go beyond 300MB. This is not a mistake—this memory usage figure is high because it's for a Bitcoin node that isn't rejecting (or evicting) transactions. Consider it to be another data point to give you an idea of how congested the mempool is relative to the default memory limit of 300MB.</p>
|
||||
<p>A Bitcoin node running the default 300MB mempool memory limit, like most Raspberry Pi nodes, will never go past 300MB of memory usage.</p>
|
||||
</ng-template>
|
||||
|
||||
<ng-template type="why-empty-blocks">
|
||||
<p>When a new block is found, mining pools send miners a block template with no transactions so they can start searching for the next block as soon as possible. They send a block template full of transactions right afterward, but a full block template is a bigger data transfer and takes slightly longer to reach miners.</p><p>In this intervening time, which is usually no more than 1-2 seconds, miners sometimes get lucky and find a new block using the empty block template.</p>
|
||||
</ng-template>
|
||||
|
||||
@@ -107,8 +107,8 @@ export interface PoolStat {
|
||||
'1w': number,
|
||||
};
|
||||
estimatedHashrate: number;
|
||||
reportedHashrate: number;
|
||||
luck?: number;
|
||||
avgBlockHealth: number;
|
||||
totalReward: number;
|
||||
}
|
||||
|
||||
export interface BlockExtension {
|
||||
@@ -118,6 +118,7 @@ export interface BlockExtension {
|
||||
reward?: number;
|
||||
coinbaseRaw?: string;
|
||||
matchRate?: number;
|
||||
similarity?: number;
|
||||
pool?: {
|
||||
id: number;
|
||||
name: string;
|
||||
|
||||
@@ -43,6 +43,7 @@ export interface MempoolBlock {
|
||||
totalFees: number;
|
||||
feeRange: number[];
|
||||
index: number;
|
||||
isStack?: boolean;
|
||||
}
|
||||
|
||||
export interface MempoolBlockWithTransactions extends MempoolBlock {
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
<h2 i18n="lightning.node-fee-distribution">Fee distribution</h2>
|
||||
<div class="chart" echarts [initOpts]="chartInitOptions" [options]="chartOptions" (chartInit)="onChartInit($event)"></div>
|
||||
<div class="text-center loadingGraphs" *ngIf="isLoading">
|
||||
<div class="spinner-border text-light"></div>d
|
||||
<div class="spinner-border text-light"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -101,8 +101,15 @@ export class NodeFeeChartComponent implements OnInit {
|
||||
}
|
||||
|
||||
prepareChartOptions(outgoingData, incomingData): void {
|
||||
let sum = outgoingData.reduce((accumulator, object) => {
|
||||
return accumulator + object.count;
|
||||
}, 0);
|
||||
sum += incomingData.reduce((accumulator, object) => {
|
||||
return accumulator + object.count;
|
||||
}, 0);
|
||||
|
||||
let title: object;
|
||||
if (outgoingData.length === 0) {
|
||||
if (sum === 0) {
|
||||
title = {
|
||||
textStyle: {
|
||||
color: 'grey',
|
||||
@@ -115,7 +122,7 @@ export class NodeFeeChartComponent implements OnInit {
|
||||
}
|
||||
|
||||
this.chartOptions = {
|
||||
title: outgoingData.length === 0 ? title : undefined,
|
||||
title: sum === 0 ? title : undefined,
|
||||
animation: false,
|
||||
grid: {
|
||||
top: 30,
|
||||
@@ -151,7 +158,7 @@ export class NodeFeeChartComponent implements OnInit {
|
||||
`;
|
||||
}
|
||||
},
|
||||
xAxis: outgoingData.length === 0 ? undefined : {
|
||||
xAxis: sum === 0 ? undefined : {
|
||||
type: 'category',
|
||||
axisLine: { onZero: true },
|
||||
axisLabel: {
|
||||
@@ -163,7 +170,7 @@ export class NodeFeeChartComponent implements OnInit {
|
||||
},
|
||||
data: outgoingData.map(bucket => bucket.label)
|
||||
},
|
||||
legend: outgoingData.length === 0 ? undefined : {
|
||||
legend: sum === 0 ? undefined : {
|
||||
padding: 10,
|
||||
data: [
|
||||
{
|
||||
@@ -184,7 +191,7 @@ export class NodeFeeChartComponent implements OnInit {
|
||||
},
|
||||
],
|
||||
},
|
||||
yAxis: outgoingData.length === 0 ? undefined : [
|
||||
yAxis: sum === 0 ? undefined : [
|
||||
{
|
||||
type: 'value',
|
||||
axisLabel: {
|
||||
@@ -202,7 +209,7 @@ export class NodeFeeChartComponent implements OnInit {
|
||||
},
|
||||
},
|
||||
],
|
||||
series: outgoingData.length === 0 ? undefined : [
|
||||
series: sum === 0 ? undefined : [
|
||||
{
|
||||
zlevel: 0,
|
||||
name: $localize`Outgoing Fees`,
|
||||
|
||||
@@ -75,13 +75,13 @@ export class NodeStatisticsChartComponent implements OnInit {
|
||||
|
||||
prepareChartOptions(data) {
|
||||
let title: object;
|
||||
if (data.channels.length === 0) {
|
||||
if (data.channels.length < 2) {
|
||||
title = {
|
||||
textStyle: {
|
||||
color: 'grey',
|
||||
fontSize: 15
|
||||
},
|
||||
text: `Loading`,
|
||||
text: $localize`No data to display yet. Try again later.`,
|
||||
left: 'center',
|
||||
top: 'center'
|
||||
};
|
||||
@@ -135,14 +135,14 @@ export class NodeStatisticsChartComponent implements OnInit {
|
||||
return tooltip;
|
||||
}
|
||||
},
|
||||
xAxis: data.channels.length === 0 ? undefined : {
|
||||
xAxis: data.channels.length < 2 ? undefined : {
|
||||
type: 'time',
|
||||
splitNumber: this.isMobile() ? 5 : 10,
|
||||
axisLabel: {
|
||||
hideOverlap: true,
|
||||
}
|
||||
},
|
||||
legend: data.channels.length === 0 ? undefined : {
|
||||
legend: data.channels.length < 2 ? undefined : {
|
||||
padding: 10,
|
||||
data: [
|
||||
{
|
||||
@@ -167,7 +167,7 @@ export class NodeStatisticsChartComponent implements OnInit {
|
||||
'Capacity': true,
|
||||
}
|
||||
},
|
||||
yAxis: data.channels.length === 0 ? undefined : [
|
||||
yAxis: data.channels.length < 2 ? undefined : [
|
||||
{
|
||||
type: 'value',
|
||||
axisLabel: {
|
||||
@@ -198,7 +198,7 @@ export class NodeStatisticsChartComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
],
|
||||
series: data.channels.length === 0 ? [] : [
|
||||
series: data.channels.length < 2 ? [] : [
|
||||
{
|
||||
zlevel: 1,
|
||||
name: $localize`:@@807cf11e6ac1cde912496f764c176bdfdd6b7e19:Channels`,
|
||||
|
||||
@@ -133,3 +133,10 @@
|
||||
top: 450px;
|
||||
}
|
||||
}
|
||||
|
||||
.indexing-message {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
@@ -204,24 +204,33 @@ export class NodesChannelsMap implements OnInit {
|
||||
|
||||
prepareChartOptions(nodes, channels) {
|
||||
let title: object;
|
||||
if (channels.length === 0 && !this.placeholder) {
|
||||
this.chartOptions = null;
|
||||
return;
|
||||
}
|
||||
|
||||
// empty map fallback
|
||||
if (channels.length === 0 && this.placeholder) {
|
||||
title = {
|
||||
textStyle: {
|
||||
color: 'white',
|
||||
fontSize: 18
|
||||
},
|
||||
text: $localize`No geolocation data available`,
|
||||
left: 'center',
|
||||
top: 'center'
|
||||
};
|
||||
this.zoom = 1.5;
|
||||
this.center = [0, 20];
|
||||
if (channels.length === 0) {
|
||||
if (!this.placeholder) {
|
||||
this.isLoading = false;
|
||||
title = {
|
||||
textStyle: {
|
||||
color: 'white',
|
||||
fontSize: 18
|
||||
},
|
||||
text: $localize`No data to display yet. Try again later.`,
|
||||
left: 'center',
|
||||
top: 'center'
|
||||
};
|
||||
this.zoom = 1.5;
|
||||
this.center = [0, 20];
|
||||
} else { // used for Node and Channel preview components
|
||||
title = {
|
||||
textStyle: {
|
||||
color: 'white',
|
||||
fontSize: 18
|
||||
},
|
||||
text: $localize`No geolocation data available`,
|
||||
left: 'center',
|
||||
top: 'center'
|
||||
};
|
||||
this.zoom = 1.5;
|
||||
this.center = [0, 20];
|
||||
}
|
||||
}
|
||||
|
||||
this.chartOptions = {
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div [class]="!widget ? 'bottom-padding' : 'pb-0'" class="container pb-lg-0">
|
||||
<div *ngIf="!indexingInProgress else indexing" [class]="!widget ? 'bottom-padding' : 'pb-0'" class="container pb-lg-0">
|
||||
<div [class]="widget ? 'chart-widget' : 'chart'" echarts [initOpts]="chartInitOptions" [options]="chartOptions"
|
||||
(chartInit)="onChartInit($event)">
|
||||
</div>
|
||||
@@ -99,3 +99,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #indexing>
|
||||
<div class="indexing-message" i18n="lightning.indexing-in-progress">Indexing in progress</div>
|
||||
</ng-template>
|
||||
|
||||
@@ -167,4 +167,14 @@
|
||||
padding-left: 105px;
|
||||
padding-right: 105px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.indexing-message {
|
||||
font-size: 15px;
|
||||
color: grey;
|
||||
font-weight: bold;
|
||||
width: 100%;
|
||||
padding-top: 100px;
|
||||
text-align: center;
|
||||
height: 240px;
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ export class NodesPerISPChartComponent implements OnInit {
|
||||
sortBy = 'capacity';
|
||||
showUnknown = false;
|
||||
chartInstance = undefined;
|
||||
indexingInProgress = false;
|
||||
|
||||
@HostBinding('attr.dir') dir = 'ltr';
|
||||
|
||||
@@ -88,6 +89,8 @@ export class NodesPerISPChartComponent implements OnInit {
|
||||
|
||||
this.prepareChartOptions(data.ispRanking);
|
||||
|
||||
this.indexingInProgress = !data.ispRanking.length;
|
||||
|
||||
return {
|
||||
taggedISP: data.ispRanking.length,
|
||||
clearnetCapacity: data.clearnetCapacity,
|
||||
|
||||
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> الكتل المتوقعة </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتله المتوقعه </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتل المعدنه </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتله المعدنه</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتل المتبقية</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>الكتلة المتبقية</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>كتل قادمه</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>كتله قادمه</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>كتل وراء</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/>كتله وراء</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>متوسط وقت الكتل</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3984,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/>كتل</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4003,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>اخرى (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4565,6 +4578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-until" datatype="html">
|
||||
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
|
||||
<target>في ~ <x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
@@ -5348,6 +5362,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html">
|
||||
<source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source>
|
||||
<target><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/>يوفر mempool.space بيانات حول شبكة البتكوين. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> لا يمكننا مساعدتك في استرداد الأموال ، وتأكيد معاملتك بشكل أسرع ، وما إلى ذلك.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -5873,6 +5888,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="96508700250272816" datatype="html">
|
||||
<source>Force closed with penalty</source>
|
||||
<target>أغلقت بالقوة هناك خطآ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/closing-type/closing-type.component.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
@@ -6006,6 +6022,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="cfcc7201138b0ef9901e9604c35f550e91629295" datatype="html">
|
||||
<source>avg</source>
|
||||
<target>متوسط</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">3,5</context>
|
||||
@@ -6014,6 +6031,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ba9117dcc11814c44437cf9d7561874ba8b98a2a" datatype="html">
|
||||
<source>med</source>
|
||||
<target>متوسط</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">6,9</context>
|
||||
@@ -6408,6 +6426,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7254919336112973896" datatype="html">
|
||||
<source>Outgoing Fees</source>
|
||||
<target>الرسوم الصادرة</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node-fee-chart/node-fee-chart.component.ts</context>
|
||||
<context context-type="linenumber">170</context>
|
||||
@@ -6419,6 +6438,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="484887099976974152" datatype="html">
|
||||
<source>Incoming Fees</source>
|
||||
<target>رسوم واردة</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node-fee-chart/node-fee-chart.component.ts</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
@@ -6706,6 +6726,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="599038141003770125" datatype="html">
|
||||
<source>Clearnet and Darknet</source>
|
||||
<target>كليرنت ودارك نت</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">164,161</context>
|
||||
@@ -6717,6 +6738,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1282458597026430784" datatype="html">
|
||||
<source>Clearnet Only (IPv4, IPv6)</source>
|
||||
<target>كليرنت فقط (IPv4 ، IPv6)</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">185,182</context>
|
||||
@@ -6728,6 +6750,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2165336009914523952" datatype="html">
|
||||
<source>Darknet Only (Tor, I2P, cjdns)</source>
|
||||
<target>الداركنت فقط (Tor، I2P، cjdns)</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">206,203</context>
|
||||
@@ -6752,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/>العقد</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">104,103</context>
|
||||
|
||||
@@ -3235,6 +3235,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target>zbývá <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloků</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3244,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target>zbývá <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3253,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target>za <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloků</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3262,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target>za <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3271,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target>Před <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloků</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3280,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target>Před <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3289,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Průměrná perioda bloků</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3984,6 +3991,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> bloků</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4505,7 +4513,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-since" datatype="html">
|
||||
<source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source>
|
||||
<target>před <x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<target>Před <x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
@@ -7104,7 +7112,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minute" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minute</source>
|
||||
<target><x id="DATE" equiv-text="counter"/> minuta</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> min</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -7112,7 +7120,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minutes" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minutes</source>
|
||||
<target><x id="DATE" equiv-text="counter"/> minuty</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> min</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
|
||||
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke forventes</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok forventet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke fundet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok fundet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke tilbage</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok tilbage</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke foran</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok foran</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokke bagved</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok bagved</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Gennemsnitlig bloktid</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -4004,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Andet (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4506,7 +4518,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-since" datatype="html">
|
||||
<source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source>
|
||||
<target> <x id="DATE" equiv-text="dateStrings.i18nYear"/> siden</target>
|
||||
<target><x id="DATE" equiv-text="dateStrings.i18nYear"/> siden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
@@ -5055,7 +5067,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ea7c261363dc5f6134b7bacba2a1ef97f4ff7859" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> tilbage</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> tilbage</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
<context context-type="linenumber">332,333</context>
|
||||
@@ -6901,7 +6913,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3627306100664959238" datatype="html">
|
||||
<source><x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</source>
|
||||
<target> <x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</target>
|
||||
<target><x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts</context>
|
||||
<context context-type="linenumber">159,157</context>
|
||||
|
||||
@@ -3203,7 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> Blöcke erwartet</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> Blöcke erwartet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3221,7 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> Blöcke gefunden</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> Blöcke gefunden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3239,7 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> verbleibende Blöcke</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> verbleibende Blöcke</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3257,7 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> Blöcke voraus</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> Blöcke voraus</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3275,7 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> Blöcke dahinter</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> Blöcke dahinter</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3995,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> 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">165,163</context>
|
||||
@@ -4014,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Andere (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -6773,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> nodes</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">104,103</context>
|
||||
|
||||
@@ -432,7 +432,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="07193288a0312875e18f38c3a2486b927a15520a" datatype="html">
|
||||
<source>Timestamp</source>
|
||||
<target>Sello de tiempo</target>
|
||||
<target>Timestamp</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-block/bisq-block.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
@@ -1440,7 +1440,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4b137ec8bf73a47063740b75c0c40d5fd3c48015" datatype="html">
|
||||
<source>The Mempool Open Source Project</source>
|
||||
<target>Proyecto de Código Abierto The Mempool</target>
|
||||
<target>El proyecto de código abierto Mempool</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/about/about.component.html</context>
|
||||
<context context-type="linenumber">12,13</context>
|
||||
@@ -3355,7 +3355,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ee847b69ef2dc81bb3e9b8cd30f02f8d63adbe07" datatype="html">
|
||||
<source>Medium Priority</source>
|
||||
<target>Prioridad media</target>
|
||||
<target>Media prioridad</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/fees-box/fees-box.component.html</context>
|
||||
<context context-type="linenumber">9,10</context>
|
||||
|
||||
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa odotetaan</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> odotettu lohko</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa louhittu</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> louhittu lohko </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa jäljellä</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohko jäljellä</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa edellä</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohko edellä</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohkoa jäljessä</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> lohko jäljessä</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Keskimääräinen lohkoaika</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3984,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> lohkoa</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4003,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Muut (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4565,6 +4578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-until" datatype="html">
|
||||
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
|
||||
<target>~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
@@ -6761,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> solmua</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">104,103</context>
|
||||
|
||||
@@ -487,7 +487,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bisq-block.component.browser-title" datatype="html">
|
||||
<source>Block <x id="BLOCK_HEIGHT" equiv-text="block.height"/>: <x id="BLOCK_HASH" equiv-text="block.hash"/></source>
|
||||
<target>Bloc <x id="BLOCK_HEIGHT" equiv-text="block.height"/> : <x id="BLOCK_HASH" equiv-text="block.hash"/></target>
|
||||
<target>Bloc <x id="BLOCK_HEIGHT" equiv-text="block.height"/>: <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">89</context>
|
||||
@@ -842,7 +842,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="74d80a5b284beb81e8aeb3b8efca0f78cd4b7560" datatype="html">
|
||||
<source>Amount (<x id="INTERPOLATION" equiv-text="{{ i }}"/>)</source>
|
||||
<target>Montant ( <x id="INTERPOLATION" equiv-text="{{ i }}"/> )</target>
|
||||
<target>Montant (<x id="INTERPOLATION" equiv-text="{{ i }}"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-market/bisq-market.component.html</context>
|
||||
<context context-type="linenumber">112,113</context>
|
||||
@@ -1109,7 +1109,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8e623d3cfecb7c560c114390db53c1f430ffd0de" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> confirmation</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> confirmation</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> confirmation</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">20,21</context>
|
||||
@@ -1131,7 +1131,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5b0a2631f0b7bc71aaec6aa6f01af21f9a80d4" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> confirmations</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> confirmations</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> confirmations</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">21,22</context>
|
||||
@@ -1234,7 +1234,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bisq.transaction.browser-title" datatype="html">
|
||||
<source>Transaction: <x id="INTERPOLATION" equiv-text="this.txId"/></source>
|
||||
<target>Transaction : <x id="INTERPOLATION" equiv-text="this.txId"/></target>
|
||||
<target>Transaction: <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">50</context>
|
||||
@@ -1611,7 +1611,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="address.component.browser-title" datatype="html">
|
||||
<source>Address: <x id="INTERPOLATION" equiv-text="this.addressString"/></source>
|
||||
<target>Adresse : <x id="INTERPOLATION" equiv-text="this.addressString"/></target>
|
||||
<target>Adresse: <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">70</context>
|
||||
@@ -1800,7 +1800,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="asset.component.asset-browser-title" datatype="html">
|
||||
<source>Asset: <x id="INTERPOLATION" equiv-text="this.assetString"/></source>
|
||||
<target>Actif : <x id="INTERPOLATION" equiv-text="this.assetString"/></target>
|
||||
<target>Actif: <x id="INTERPOLATION" equiv-text="this.assetString"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/asset/asset.component.ts</context>
|
||||
<context context-type="linenumber">75</context>
|
||||
@@ -3203,7 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs attendus</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs attendus</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3221,7 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs trouvés</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs trouvés</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3230,7 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc trouvé</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc trouvé</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3239,7 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs restants</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs restants</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3248,7 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc restant</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc restant</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3257,7 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs d'avance</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs d'avance</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3266,7 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc d'avance</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc d'avance</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3275,7 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs de retard</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocs de retard</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3284,7 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc de retard</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc de retard</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -4578,7 +4578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-until" datatype="html">
|
||||
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
|
||||
<target>Dans ~ <x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<target>Dans ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
@@ -5067,7 +5067,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ea7c261363dc5f6134b7bacba2a1ef97f4ff7859" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> restantes</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> restantes</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
<context context-type="linenumber">332,333</context>
|
||||
@@ -5200,7 +5200,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="47b821c7df420c96de0b22844a88c04d52628540" datatype="html">
|
||||
<source>This transaction uses Taproot and already saved at least <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% on fees, but could save an additional <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% by fully using Taproot</source>
|
||||
<target>Cette transaction utilise Taproot et a déjà économisé au moins <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/> % sur les frais, mais pourrait économiser <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/> % supplémentaires en utilisant pleinement Taproot</target>
|
||||
<target>Cette transaction utilise Taproot et a déjà économisé au moins <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% sur les frais, mais pourrait économiser <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% supplémentaires en utilisant pleinement Taproot</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -5578,7 +5578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="205c1b86ac1cc419c4d0cca51fdde418c4ffdc20" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> channels</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> canaux</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> canaux</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -5864,7 +5864,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="6008566722612122663" datatype="html">
|
||||
<source>Channel: <x id="PH" equiv-text="value.short_id"/></source>
|
||||
<target>Canal : <x id="PH" equiv-text="value.short_id"/></target>
|
||||
<target>Canal: <x id="PH" equiv-text="value.short_id"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel.component.ts</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
|
||||
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים צפויים</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק צפוי</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים נכרו</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק נכרה</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים נותרו</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק נותר</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים קדימה</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק קדימה</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוקים מאחור</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> בלוק מאחור</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>זמן בלוק ממוצע</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3538,7 +3549,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8573a1576789bd2c4faeaed23037c4917812c6cf" datatype="html">
|
||||
<source>Lightning Nodes Per ISP</source>
|
||||
<target>צמתי ברק לפי ספקי תשתית</target>
|
||||
<target>צמתי ברק לפי ספקיות</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/graphs/graphs.component.html</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
@@ -3706,6 +3717,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="142e923d3b04186ac6ba23387265d22a2fa404e0" datatype="html">
|
||||
<source>Lightning Explorer</source>
|
||||
<target>חוקר רשת הברק</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/master-page/master-page.component.html</context>
|
||||
<context context-type="linenumber">44,47</context>
|
||||
@@ -3874,6 +3886,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="500e13dffc7300bf7e4822a6bbf29a71a55d7b75" datatype="html">
|
||||
<source>How many unique pools found at least one block over the past week.</source>
|
||||
<target>כמות בריכות הכרייה אשר מצאו לפחות בלוק אחד בשבוע החולף.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">19,23</context>
|
||||
@@ -3982,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> בלוקים</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4001,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>אחר (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4356,6 +4371,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7deec1c1520f06170e1f8e8ddfbe4532312f638f" datatype="html">
|
||||
<source>Explore the full Bitcoin ecosystem</source>
|
||||
<target>חקור את מרחב רשתות הביטקוין</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-form.component.html</context>
|
||||
<context context-type="linenumber">4,5</context>
|
||||
@@ -4562,6 +4578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-until" datatype="html">
|
||||
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
|
||||
<target>תוך <x id="DATE" equiv-text="dateStrings.i18nYear"/>~</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
@@ -5345,6 +5362,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html">
|
||||
<source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source>
|
||||
<target><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/>mempool.space מספק נתונים מרשת הביטקוין בלבד. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> אין אפשרות לסייע באיחזור נכסים, אישור מהיר יותר של טרנזקציות וכו'.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -5357,6 +5375,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="cd2330c7e9c74256f6a91e83bccf10e2905f8556" datatype="html">
|
||||
<source>REST API service</source>
|
||||
<target>שירותי API</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
|
||||
<context context-type="linenumber">42,43</context>
|
||||
@@ -5475,6 +5494,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="6acd06bd5a3af583cd46c6d9f7954d7a2b44095e" datatype="html">
|
||||
<source>mSats</source>
|
||||
<target>מיליסאטס</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -5495,6 +5515,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="fb2137ba0df55f21a9d6b6ad08d56d74ad852e0e" datatype="html">
|
||||
<source>This channel supports zero base fee routing</source>
|
||||
<target>ערוץ זה תומך בניתוב עמלות בסיס אפס</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
@@ -5503,6 +5524,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3ec76ccfe1fdcbfd7ea152392f6472d93d4e8cab" datatype="html">
|
||||
<source>Zero base fee</source>
|
||||
<target>עמלות בסיס אפס</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">45</context>
|
||||
@@ -5511,6 +5533,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b5e42e06ea8a4012a38eef209104bbd9dd1a0fc0" datatype="html">
|
||||
<source>This channel does not support zero base fee routing</source>
|
||||
<target>ערוץ זה אינו תומך בניתוב עמלות בסיס אפס</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
@@ -5519,6 +5542,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="09a1bc9c4198e87e9e974a51e86b181429b480d3" datatype="html">
|
||||
<source>Non-zero base fee</source>
|
||||
<target>לא עמלות בסיס אפס</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
@@ -5527,6 +5551,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="055060668d0b9902c37abfb6168a08a36eba4496" datatype="html">
|
||||
<source>Min HTLC</source>
|
||||
<target>HTLC מינימלי</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">57</context>
|
||||
@@ -5535,6 +5560,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c3d94c1a5aef6211f4a902027bd08540d7222b0d" datatype="html">
|
||||
<source>Max HTLC</source>
|
||||
<target>HTLC מקסימלי</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
@@ -5543,6 +5569,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="9fe79011b50c2ca1f9b7db7066046631bfc6b3cb" datatype="html">
|
||||
<source>Timelock delta</source>
|
||||
<target>מרווח נעילת-זמן</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">69</context>
|
||||
@@ -5730,6 +5757,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8fd0077b032e360ece45c4fd655f85b2400dcb83" datatype="html">
|
||||
<source>ppm</source>
|
||||
<target>פפ"מ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-preview.component.html</context>
|
||||
<context context-type="linenumber">34,35</context>
|
||||
@@ -6038,6 +6066,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="db1f0c0605ab0c4a904523635982253ff72eed40" datatype="html">
|
||||
<source>The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm</source>
|
||||
<target>ממוצע העמלות שנגבה בידי צמתי ניתוב, בהתעלמות מתעריף העמלה > 0.5% או 5000 פפ"מ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">28,30</context>
|
||||
@@ -6059,6 +6088,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0a46218f4a7b17b6445460898d75ab78e7e7979b" datatype="html">
|
||||
<source>The average base fee charged by routing nodes, ignoring base fees > 5000ppm</source>
|
||||
<target>ממוצע העמלות שנגבה בידי צמתי ניתוב, בהתעלמות מתעריף העמלה > 5000 פפ"מ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">43,45</context>
|
||||
@@ -6085,6 +6115,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="cb4dae32e1b4d6a2ba6287d9f7bd859ca7259468" datatype="html">
|
||||
<source>The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm</source>
|
||||
<target>חציון העמלות שנגבה בידי צמתי ניתוב, בהתעלמות תעריף העמלה > 0.5% או 5000 פפ"מ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">74,76</context>
|
||||
@@ -6102,6 +6133,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b8539025268617abfcab1c3f2a2c60cd8d7485fb" datatype="html">
|
||||
<source>The median base fee charged by routing nodes, ignoring base fees > 5000ppm</source>
|
||||
<target>חציון העמלות שנגבה על ידי צמתי ניתוב, בהתעלמות מבסיס העמלה > 5000 פפ"מ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">89,91</context>
|
||||
@@ -6347,6 +6379,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2d9883d230a47fbbb2ec969e32a186597ea27405" datatype="html">
|
||||
<source>Liquidity Ranking</source>
|
||||
<target>דירוג נזילות</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
@@ -6371,6 +6404,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c50bf442cf99f6fc5f8b687c460f33234b879869" datatype="html">
|
||||
<source>Connectivity Ranking</source>
|
||||
<target>דירוג חיבוריות</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
@@ -6512,7 +6546,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5b9904cb31f6f28314443f6385dc5facab7ea851" datatype="html">
|
||||
<source>ISP</source>
|
||||
<target>ספק אינטרנט</target>
|
||||
<target>רשת גלויה</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">89,90</context>
|
||||
@@ -6534,6 +6568,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e128630e07a4c467f51b246a31c5734d5fb1a2c2" datatype="html">
|
||||
<source>Liquidity ad</source>
|
||||
<target>פרסומת ליקווידיטי</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">141,144</context>
|
||||
@@ -6542,6 +6577,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bc84b5a9a70217104a53c7139e30b392be6520b7" datatype="html">
|
||||
<source>Lease fee rate</source>
|
||||
<target>שיעור עמלת שכירות</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">147,150</context>
|
||||
@@ -6551,6 +6587,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ee807dd54b4a45eeba284744c64774de1ab5e4f1" datatype="html">
|
||||
<source>Lease base fee</source>
|
||||
<target>עמלת בסיס לשכירות</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">155,157</context>
|
||||
@@ -6559,6 +6596,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e348f3d51c3bb283c16572bee1e293ea991cf49" datatype="html">
|
||||
<source>Funding weight</source>
|
||||
<target>משקל מימון</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">161,162</context>
|
||||
@@ -6586,6 +6624,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e8e09fa12864e94f094a2a7c8c97cfdf0cff8aab" datatype="html">
|
||||
<source>Compact lease</source>
|
||||
<target>שכירות קומפקטית</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">191,193</context>
|
||||
@@ -6594,6 +6633,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="aa687f4987e2d4e0010be692d402174962ece70e" datatype="html">
|
||||
<source>TLV extension records</source>
|
||||
<target>תיעוד TLV מורחב</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">202,205</context>
|
||||
@@ -6628,6 +6668,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7cac1c3013423d82d5149a5854d709bd08411430" datatype="html">
|
||||
<source>(Tor nodes excluded)</source>
|
||||
<target>(ללא צמתי תור)</target>
|
||||
<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,11</context>
|
||||
@@ -6648,6 +6689,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8199511328474154549" datatype="html">
|
||||
<source>Lightning Nodes Channels World Map</source>
|
||||
<target>מפת ערוצי רשת הברק העולמית</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>
|
||||
@@ -6655,6 +6697,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4390631969351833104" datatype="html">
|
||||
<source>No geolocation data available</source>
|
||||
<target>מידע גיאולוקאלי אינו זמין</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">219,214</context>
|
||||
@@ -6732,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> צמתים</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">104,103</context>
|
||||
@@ -6768,6 +6812,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4498ec29c37744fef46809ebc3db67c5fb789917" datatype="html">
|
||||
<source>ISP Count</source>
|
||||
<target>כמות ספקיות</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.html</context>
|
||||
<context context-type="linenumber">34,38</context>
|
||||
@@ -6776,6 +6821,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="90a6a964ba53464578003e3b4b2873ef5d2132a1" datatype="html">
|
||||
<source>Top ISP</source>
|
||||
<target>ספקיות מובילות</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.html</context>
|
||||
<context context-type="linenumber">38,40</context>
|
||||
@@ -6805,6 +6851,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ccabb31683868066778a1d664aa53ee9fcf77d6b" datatype="html">
|
||||
<source>How much liquidity is running on nodes advertising at least one clearnet IP address</source>
|
||||
<target>כמה ליקווידיטי רץ על צמתים המפרסמים לפחות כתובת IP גלויה אחת</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
|
||||
<context context-type="linenumber">8,9</context>
|
||||
@@ -6826,6 +6873,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="26fb07e8754b87bba4bf12c5137ffa77dac389a8" datatype="html">
|
||||
<source>How much liquidity is running on nodes which ISP was not identifiable</source>
|
||||
<target>כמה ליקווידיטי רץ על צמתים ללא ספקית רשת מזוהה</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
|
||||
<context context-type="linenumber">15,16</context>
|
||||
@@ -6847,6 +6895,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="23549ef4e1f846f06abcf07ceecb115945a0cf61" datatype="html">
|
||||
<source>How much liquidity is running on nodes advertising only Tor addresses</source>
|
||||
<target>כמה ליקווידיטי רץ על צמתים המפרסמים כתובות תור בלבד</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
|
||||
<context context-type="linenumber">22,23</context>
|
||||
@@ -6855,6 +6904,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e008f2a76179fdcd7110b41ca624131f91075949" datatype="html">
|
||||
<source>Top 100 ISPs hosting LN nodes</source>
|
||||
<target>100 הספקיות המובילות באיחסון צמתי רשת הברק</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
|
||||
<context context-type="linenumber">31,33</context>
|
||||
@@ -6875,6 +6925,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c18497e4f0db0d0ad0c71ba294295f42b3d312c9" datatype="html">
|
||||
<source>Lightning ISP</source>
|
||||
<target>ספקיות ברק</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp-preview.component.html</context>
|
||||
<context context-type="linenumber">3,5</context>
|
||||
@@ -6905,6 +6956,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5735693498020397727" datatype="html">
|
||||
<source>Lightning nodes on ISP: <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>]</source>
|
||||
<target>צמתי ברק אצל ספקיות: <x id="PH" equiv-text="response.isp"/> [כ <x id="PH_1" equiv-text="this.route.snapshot.params.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">44</context>
|
||||
@@ -6916,6 +6968,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="d82f436f033a7d81680b8430275f94dda530151c" datatype="html">
|
||||
<source>Lightning nodes on ISP: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></source>
|
||||
<target>צמתי ברק ברשת הגלויה: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp.component.html</context>
|
||||
<context context-type="linenumber">2,4</context>
|
||||
@@ -6924,6 +6977,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ca0b795795658155d44ddca02e95f1feeeb4a88f" datatype="html">
|
||||
<source>ASN</source>
|
||||
<target>ASN</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp.component.html</context>
|
||||
<context context-type="linenumber">11,14</context>
|
||||
|
||||
@@ -1449,6 +1449,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8a4411dcb4da0aa489ec367bf2a3ec289e07a86e" datatype="html">
|
||||
<source>Our mempool and blockchain explorer for the Bitcoin community, focusing on the transaction fee market and multi-layer ecosystem, completely self-hosted without any trusted third-parties.</source>
|
||||
<target>Mempoolunk és blokklánc-felfedezőnk a Bitcoin közösség számára, a tranzakciós díjak piacára és a többrétegű ökoszisztémára összpontosítva, teljesen önállóan, megbízható harmadik felek nélkül.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/about/about.component.html</context>
|
||||
<context context-type="linenumber">13,16</context>
|
||||
@@ -1649,6 +1650,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="49cef95661d86f4341788ce40068d58801adc6e6" datatype="html">
|
||||
<source><x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>There many transactions on this address, more than your backend can handle. See more on <x id="START_LINK" ctype="x-a" equiv-text="<a href="/docs/faq#address-lookup-issues">"/>setting up a stronger backend<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.<x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br>"/> Consider viewing this address on the official Mempool website instead: </source>
|
||||
<target><x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>Sok tranzakció van ezen a címen, többet, mint amennyit a háttérrendszere képes kezelni. További információ<x id="START_LINK" ctype="x-a" equiv-text="<a href="/docs/faq#address-lookup-issues">"/> az erősebb háttérrendszer beállításáról<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br>"/><x id="LINE_BREAK" ctype="lb" equiv-text="<br>"/>Fontolja meg ennek a címnek a megtekintését a hivatalos Mempool webhelyen:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/address/address.component.html</context>
|
||||
<context context-type="linenumber">134,137</context>
|
||||
@@ -3111,6 +3113,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1bb6965f8e1bbe40c076528ffd841da86f57f119" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
|
||||
<target><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> blokkok <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
|
||||
<context context-type="linenumber">10,11</context>
|
||||
@@ -3135,6 +3138,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b7ef3894d9b6f157c400ddc937c70c9881ecd896" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="<span class="shared-block">block</span></ng-template> </div>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>block<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
|
||||
<target><x id="INTERPOLATION" equiv-text="<span class="shared-block">block</span></ng-template> </div>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> blokk <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
|
||||
<context context-type="linenumber">11,12</context>
|
||||
@@ -3199,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkra várva</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3207,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk várva</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3215,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk bányászva</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3223,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk bányászva</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3231,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk hátramaradt</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3239,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk hátramaradt</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3247,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkal előrébb</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3255,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkal előrébb</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3263,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkal lemaradva</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3271,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokkal lemaradva</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3279,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Átlagos blokk idő</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3287,6 +3302,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="6ff9e8b67bc2cda7569dc0996d4c2fd858c5d4e6" datatype="html">
|
||||
<source>Either 2x the minimum, or the Low Priority rate (whichever is lower)</source>
|
||||
<target>Vagy a minimum 2x-e, vagy az alacsony prioritási arány (amelyik alacsonyabb)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/fees-box/fees-box.component.html</context>
|
||||
<context context-type="linenumber">4,7</context>
|
||||
@@ -3330,6 +3346,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="eeeeabc97373285d75acf0f013f68434a6f1935b" datatype="html">
|
||||
<source>Usually places your transaction in between the first and second mempool blocks</source>
|
||||
<target>Ez tranzakciót általában az első és a második mempoolblokk közé helyezi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/fees-box/fees-box.component.html</context>
|
||||
<context context-type="linenumber">9,10</context>
|
||||
@@ -3646,6 +3663,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="mining.pools-historical-dominance" datatype="html">
|
||||
<source>Pools Historical Dominance</source>
|
||||
<target>Történelmi Pool Fölény</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/hashrates-chart-pools/hashrate-chart-pools.component.ts</context>
|
||||
<context context-type="linenumber">64</context>
|
||||
@@ -3653,6 +3671,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5ee5eb7db86675abd5f0b0db835bf362ee9b23ff" datatype="html">
|
||||
<source>Indexing network hashrate</source>
|
||||
<target>Hálózati hashrate indexelése</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/indexing-progress/indexing-progress.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -3660,6 +3679,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="439adfcf08f5035e2fd9e4c15e40eef92f6cc780" datatype="html">
|
||||
<source>Indexing pools hashrate</source>
|
||||
<target>Indexelő poolok hashrátája</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/indexing-progress/indexing-progress.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -3821,6 +3841,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2711844b4304254e88358d1761f9c732e5aefc69" datatype="html">
|
||||
<source>Pools luck (1 week)</source>
|
||||
<target>Pool szerencse (1 hét)</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>
|
||||
@@ -3838,6 +3859,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e910ea39a964514d51802d34cad96c75b14947d1" datatype="html">
|
||||
<source>The overall luck of all mining pools over the past week. A luck bigger than 100% means the average block time for the current epoch is less than 10 minutes.</source>
|
||||
<target>Ez az összes bányászati mempool általános szerencséje az elmúlt héten. A 100%-ál nagyobb szerencse azt jelenti, hogy az átlagos blokkidő az aktuális korszakban kevesebb mint 10 perc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">11,15</context>
|
||||
@@ -3846,6 +3868,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="9740454c3c55ca2cfa437ff9ec07374c9b9d25b5" datatype="html">
|
||||
<source>Pools count (1w)</source>
|
||||
<target>Pool szám (1w)</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>
|
||||
@@ -3863,6 +3886,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="500e13dffc7300bf7e4822a6bbf29a71a55d7b75" datatype="html">
|
||||
<source>How many unique pools found at least one block over the past week.</source>
|
||||
<target>Hány egyedi pool talált legalább egy blokkot az elmúlt héten.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">19,23</context>
|
||||
@@ -3888,6 +3912,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c9e8defa185fa8e342548958bf206de97afc97a6" datatype="html">
|
||||
<source>The number of blocks found over the past week.</source>
|
||||
<target>Az elmúlt héten talált blokkok száma.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">27,31</context>
|
||||
@@ -3944,6 +3969,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8ef3568472375e791e861ca1ef76d4cb66eef8ef" datatype="html">
|
||||
<source>Pools Luck (1w)</source>
|
||||
<target>Pool Szerencse (1w)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">146,148</context>
|
||||
@@ -3952,6 +3978,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e1ea393882afe8ac40ff7637a33a5a46bdb3e0ce" datatype="html">
|
||||
<source>Pools Count (1w)</source>
|
||||
<target>Pool Szám (1w)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">158,160</context>
|
||||
@@ -3968,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> blokkok</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -3987,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Egyéb (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4082,6 +4111,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="cc657077942054572b255be033d634cf601c50b6" datatype="html">
|
||||
<source>Hashrate (24h)</source>
|
||||
<target>Hashráta (24h)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">91,93</context>
|
||||
@@ -4165,6 +4195,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="88cb6e7b056be423b78e369ae1592c9e751095b8" datatype="html">
|
||||
<source>Mined blocks</source>
|
||||
<target>Bányászott blokkok</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool/pool.component.html</context>
|
||||
<context context-type="linenumber">141,143</context>
|
||||
@@ -4224,6 +4255,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7e93f7285e22e5a3c58cdde2205d4d2b5bfc079c" datatype="html">
|
||||
<source>Transaction hex</source>
|
||||
<target>Tranzakciós hex</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/push-transaction/push-transaction.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -4253,6 +4285,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="79b0842a2010172290ad09062bf51f09d8842f65" datatype="html">
|
||||
<source>Amount being paid to miners in the past 144 blocks</source>
|
||||
<target>A bányászoknak fizetett összeg az elmúlt 144 blokkban</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
|
||||
<context context-type="linenumber">6,8</context>
|
||||
@@ -4261,6 +4294,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1d9f405ab98a5f79d98b439de29fc8baca46b97c" datatype="html">
|
||||
<source>Avg Block Fees</source>
|
||||
<target>Átlag Blokk Díjjak</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
@@ -4273,6 +4307,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a0d4ab5b063e7be1c9ea980f5fd6ce1b5384ad0b" datatype="html">
|
||||
<source>Average fees per block in the past 144 blocks</source>
|
||||
<target>Átlagos díjak blokkonként az elmúlt 144 blokkban</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
|
||||
<context context-type="linenumber">18,20</context>
|
||||
@@ -4291,6 +4326,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="cf3a97b1c1546b843411cfe101bc55ba2ac46bac" datatype="html">
|
||||
<source>Avg Tx Fee</source>
|
||||
<target>Átlag Tx Díj</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -4303,6 +4339,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8be96dc461529381c812f64962c62f4228d01470" datatype="html">
|
||||
<source>Fee paid on average for each transaction in the past 144 blocks</source>
|
||||
<target>Átlagosan fizetett díj minden tranzakció után az elmúlt 144 blokkban</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
|
||||
<context context-type="linenumber">31,32</context>
|
||||
@@ -4334,6 +4371,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7deec1c1520f06170e1f8e8ddfbe4532312f638f" datatype="html">
|
||||
<source>Explore the full Bitcoin ecosystem</source>
|
||||
<target>Fedezze fel a teljes Bitcoin ökoszisztémát</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-form.component.html</context>
|
||||
<context context-type="linenumber">4,5</context>
|
||||
@@ -4351,6 +4389,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0673b255ba8db0bc5e2cccd5962d31dc88c24578" datatype="html">
|
||||
<source>Bitcoin Block Height</source>
|
||||
<target>Bitcoin Blokk Magasság</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -4359,6 +4398,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8b786a14d8c948e31bfb84369f123847a21dbf50" datatype="html">
|
||||
<source>Bitcoin Transaction</source>
|
||||
<target>Bitcoin Tranzakció</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
@@ -4367,6 +4407,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="aacf72635ebf6cfe00590e3a426ea6002c43a729" datatype="html">
|
||||
<source>Bitcoin Address</source>
|
||||
<target>Bitcoin Cím</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
@@ -4375,6 +4416,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="97089c008af92d87389ff1ec5fb2cc96a6ecef0e" datatype="html">
|
||||
<source>Bitcoin Block</source>
|
||||
<target>Bitcoin Blokk</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
@@ -4383,6 +4425,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e89c09d708a1da5f6a59ba6c38ba3db78031fe0e" datatype="html">
|
||||
<source>Bitcoin Addresses</source>
|
||||
<target>Bitcoin Cím</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
@@ -4391,6 +4434,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="67f25165b857428d046fe5eb67fc44c5c3d94e87" datatype="html">
|
||||
<source>Lightning Nodes</source>
|
||||
<target>Villám Nodeok</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -4399,6 +4443,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="db5ca37068eaee3f8b909d3b8b476164527cd8c3" datatype="html">
|
||||
<source>Lightning Channels</source>
|
||||
<target>Villám Csatornák</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
@@ -4407,6 +4452,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2abc4d0d3ae0b49fa9e94a2efb8c2e1a47e680f4" datatype="html">
|
||||
<source>Go to "<x id="INTERPOLATION" equiv-text="{{ x }}"/>"</source>
|
||||
<target>Ide menny &quot;<x id="INTERPOLATION" equiv-text="{{ x }}"/>&quot;</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -4532,6 +4578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-until" datatype="html">
|
||||
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
|
||||
<target>~<x id="DATE" equiv-text="dateStrings.i18nYear"/> belül</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
@@ -4661,6 +4708,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="72cfda88d5ab4851cba76abb402cae8f03ab6c6b" datatype="html">
|
||||
<source>This transaction replaced:</source>
|
||||
<target>Ezt a tranzakció ezt cserélte:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transaction/transaction.component.html</context>
|
||||
<context context-type="linenumber">10,12</context>
|
||||
@@ -5010,6 +5058,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="d70397ee91f6c9ec91f1c1dff88126f8f9b7c2c4" datatype="html">
|
||||
<source>Show more inputs to reveal fee data</source>
|
||||
<target>További bemenetek megjelenítése a díjadatok megjelenítéséhez</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
<context context-type="linenumber">290,293</context>
|
||||
@@ -5071,6 +5120,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="25d58cd5c18fd9c1c89d6062d67dcc2482161410" datatype="html">
|
||||
<source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using native SegWit</source>
|
||||
<target>Ez a tranzakció <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% -ot takarított meg a díjakból a natív SegWit használatával</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -5097,6 +5147,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b6a3f6afdac6873e2d261647d834c02c91376893" datatype="html">
|
||||
<source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using SegWit and could save <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% more by fully upgrading to native SegWit</source>
|
||||
<target>Ez a tranzakció <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% -os díjakat takarított meg a SegWit használatával, és további <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% -os megtakarítást érhetett el, ha teljes mértékben vált a natív SegWitre</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -5105,6 +5156,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a67530e246368aa7e5d010061fd84c3c4fe755c2" datatype="html">
|
||||
<source>This transaction could save <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% on fees by upgrading to native SegWit or <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/>% by upgrading to SegWit-P2SH</source>
|
||||
<target>Ez a tranzakció <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% -ot takaríthat meg a díjakból, ha natív SegWitre vált, vagy <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/>% -ot, ha SegWit-P2SH-ra frissít</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -5113,6 +5165,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="17e9c05e053cbd29d3835d8ecb19508d0f07241b" datatype="html">
|
||||
<source>This transaction uses Taproot and thereby saved at least <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% on fees</source>
|
||||
<target>Ez a tranzakció Taprootot használ, és ezáltal legalább <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% -ot takarít meg a díjakon</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@@ -5147,6 +5200,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="47b821c7df420c96de0b22844a88c04d52628540" datatype="html">
|
||||
<source>This transaction uses Taproot and already saved at least <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% on fees, but could save an additional <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% by fully using Taproot</source>
|
||||
<target>Ez a tranzakció Taprootot használ, és már legalább <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% -ot megtakarított a díjakból, de további <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% -ot takaríthat meg a Taproot teljes használatával</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -5155,6 +5209,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="aa31fc4d29f35b2fd36080bb6ff84be8eaab66fd" datatype="html">
|
||||
<source>This transaction could save <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% on fees by using Taproot</source>
|
||||
<target>Ez a tranzakció <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% -ot takaríthat meg a díjakból a Taproot használatával</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
@@ -5163,6 +5218,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b0fb884cf71b19e3a4d146146d260ccedd9d50a5" datatype="html">
|
||||
<source>This transaction does not use Taproot</source>
|
||||
<target>Ez a tranzakció nem használja a Taproot-ot</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -5180,6 +5236,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="07883574bb93ea23b764861f56a525bdaf907513" datatype="html">
|
||||
<source>This transaction supports Replace-By-Fee (RBF) allowing fee bumping</source>
|
||||
<target>Ez a tranzakció támogatja a Replace-By-Fee (RBF) funkciót, amely lehetővé teszi a díjak felfutását</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
@@ -5305,6 +5362,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html">
|
||||
<source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source>
|
||||
<target><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/>A mempool.space csupán adatokat szolgáltat a Bitcoin hálózatáról.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> Nem segíthet a pénzeszközök visszaszerzésében, a tranzakció gyorsabb visszaigazolásában stb.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -5457,6 +5515,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="fb2137ba0df55f21a9d6b6ad08d56d74ad852e0e" datatype="html">
|
||||
<source>This channel supports zero base fee routing</source>
|
||||
<target>Ez a csatorna támogatja a nulla alapdíjas útválasztást</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
@@ -5474,6 +5533,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b5e42e06ea8a4012a38eef209104bbd9dd1a0fc0" datatype="html">
|
||||
<source>This channel does not support zero base fee routing</source>
|
||||
<target>Ez a csatorna nem támogatja a nulla alapdíjas útválasztást</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">50</context>
|
||||
@@ -6006,6 +6066,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="db1f0c0605ab0c4a904523635982253ff72eed40" datatype="html">
|
||||
<source>The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm</source>
|
||||
<target>Az útválasztási nódok által felszámított átlagos díjtétel, figyelmen kívül hagyva a > 0,5% -os vagy 5000ppm-es díjakat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">28,30</context>
|
||||
@@ -6027,6 +6088,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0a46218f4a7b17b6445460898d75ab78e7e7979b" datatype="html">
|
||||
<source>The average base fee charged by routing nodes, ignoring base fees > 5000ppm</source>
|
||||
<target>Az útválasztási nódok által felszámított átlagos alapdíj, figyelmen kívül hagyva az alapdíjakat > 5000ppm</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">43,45</context>
|
||||
@@ -6044,6 +6106,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2c1c39e28735f607d62dbf3272eb792451c265a5" datatype="html">
|
||||
<source>Med Fee Rate</source>
|
||||
<target>Közép Díj Ráta</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">72,74</context>
|
||||
@@ -6052,6 +6115,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="cb4dae32e1b4d6a2ba6287d9f7bd859ca7259468" datatype="html">
|
||||
<source>The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm</source>
|
||||
<target>Az útválasztási nódok által felszámított medián díjtétel, figyelmen kívül hagyva a > 0,5% vagy 5000 ppm díjakat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">74,76</context>
|
||||
@@ -6060,6 +6124,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a541dbcef4908bf2e767e77d7a09cc62450e8e56" datatype="html">
|
||||
<source>Med Base Fee</source>
|
||||
<target>Közép Alapdíj</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">87,89</context>
|
||||
@@ -6068,6 +6133,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b8539025268617abfcab1c3f2a2c60cd8d7485fb" datatype="html">
|
||||
<source>The median base fee charged by routing nodes, ignoring base fees > 5000ppm</source>
|
||||
<target>Az útválasztási nódok által felszámított medián alapdíj, figyelmen kívül hagyva a > 5000ppm alapdíjakat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">89,91</context>
|
||||
@@ -6076,6 +6142,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="de1c07e9943fc284461bb8fb4860faecf52a1568" datatype="html">
|
||||
<source>Lightning node group</source>
|
||||
<target>Villám node csoport</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/group/group-preview.component.html</context>
|
||||
<context context-type="linenumber">3,5</context>
|
||||
@@ -6285,6 +6352,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="29c05e9a540827cdfa8e3b2e5e2f27aeb478916c" datatype="html">
|
||||
<source>Network Statistics</source>
|
||||
<target>Hálózati Statisztikák</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
@@ -6293,6 +6361,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="066e05b9a5db60850d907783fde6913e2e47cd5b" datatype="html">
|
||||
<source>Channels Statistics</source>
|
||||
<target>Csatorna Statisztika</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -6301,6 +6370,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0f33aeb084ac4d83cb0fe6f72648a8585b1b5e88" datatype="html">
|
||||
<source>Lightning Network History</source>
|
||||
<target>Villámhálózati Események</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
|
||||
<context context-type="linenumber">49</context>
|
||||
@@ -6309,6 +6379,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2d9883d230a47fbbb2ec969e32a186597ea27405" datatype="html">
|
||||
<source>Liquidity Ranking</source>
|
||||
<target>Likviditási Besorolás</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
|
||||
<context context-type="linenumber">62</context>
|
||||
@@ -6333,6 +6404,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c50bf442cf99f6fc5f8b687c460f33234b879869" datatype="html">
|
||||
<source>Connectivity Ranking</source>
|
||||
<target>Csatlakozottsági Besorolás</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/lightning-dashboard/lightning-dashboard.component.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
@@ -6378,6 +6450,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="027f48063a5512e5c26b6ca88f7d7734e2d333a7" datatype="html">
|
||||
<source>Percentage change past week</source>
|
||||
<target>Százalékos változás a múlt héten</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node-statistics/node-statistics.component.html</context>
|
||||
<context context-type="linenumber">5,7</context>
|
||||
@@ -6446,6 +6519,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="43b48b9c15083a164b401bf3775a4b99f3917699" datatype="html">
|
||||
<source>Average channel size</source>
|
||||
<target>Átlag csatorna méret</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">43,46</context>
|
||||
@@ -6454,6 +6528,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="008e9fb48f07f545af73b3f676dc60cc3a829765" datatype="html">
|
||||
<source>Avg channel distance</source>
|
||||
<target>Átlag csatorna távolság</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">59,60</context>
|
||||
@@ -6484,6 +6559,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="86d9619247d148019e5599707c39a36e880a2d23" datatype="html">
|
||||
<source>Exclusively on Tor</source>
|
||||
<target>Exkluzívan a Tor-on</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">96,98</context>
|
||||
@@ -6492,6 +6568,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e128630e07a4c467f51b246a31c5734d5fb1a2c2" datatype="html">
|
||||
<source>Liquidity ad</source>
|
||||
<target>Likviditási hirdetés</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">141,144</context>
|
||||
@@ -6500,6 +6577,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bc84b5a9a70217104a53c7139e30b392be6520b7" datatype="html">
|
||||
<source>Lease fee rate</source>
|
||||
<target>Lízing díj ráta</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">147,150</context>
|
||||
@@ -6509,6 +6587,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ee807dd54b4a45eeba284744c64774de1ab5e4f1" datatype="html">
|
||||
<source>Lease base fee</source>
|
||||
<target>Lízing alapdíj</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">155,157</context>
|
||||
@@ -6517,6 +6596,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e348f3d51c3bb283c16572bee1e293ea991cf49" datatype="html">
|
||||
<source>Funding weight</source>
|
||||
<target>A finanszírozás súlya</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">161,162</context>
|
||||
@@ -6525,6 +6605,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8af4768ed9112268945c697923ce017fbe23e1b7" datatype="html">
|
||||
<source>Channel fee rate</source>
|
||||
<target>Csatorna díj ráta</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">171,174</context>
|
||||
@@ -6543,6 +6624,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e8e09fa12864e94f094a2a7c8c97cfdf0cff8aab" datatype="html">
|
||||
<source>Compact lease</source>
|
||||
<target>Kompakt lízing</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/node/node.component.html</context>
|
||||
<context context-type="linenumber">191,193</context>
|
||||
@@ -6586,6 +6668,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7cac1c3013423d82d5149a5854d709bd08411430" datatype="html">
|
||||
<source>(Tor nodes excluded)</source>
|
||||
<target>(Tor nódok kiszűrve)</target>
|
||||
<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,11</context>
|
||||
@@ -6606,6 +6689,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8199511328474154549" datatype="html">
|
||||
<source>Lightning Nodes Channels World Map</source>
|
||||
<target>Villám Nódok Csatorna Világtérképe</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>
|
||||
@@ -6642,6 +6726,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="599038141003770125" datatype="html">
|
||||
<source>Clearnet and Darknet</source>
|
||||
<target>Clearnet és Darknet</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">164,161</context>
|
||||
@@ -6653,6 +6738,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1282458597026430784" datatype="html">
|
||||
<source>Clearnet Only (IPv4, IPv6)</source>
|
||||
<target>Csakis Clearnet (IPv4, IPv6)</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">185,182</context>
|
||||
@@ -6664,6 +6750,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2165336009914523952" datatype="html">
|
||||
<source>Darknet Only (Tor, I2P, cjdns)</source>
|
||||
<target>Csak Darknet (Tor, I2P, cjdns)</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">206,203</context>
|
||||
@@ -6688,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> nodeok</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">104,103</context>
|
||||
@@ -6715,6 +6803,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7ede3edfacd291eb9db08e11845d9efdf197f417" datatype="html">
|
||||
<source>Lightning nodes in <x id="INTERPOLATION" equiv-text="{{ country?.name }}"/></source>
|
||||
<target>Villámnodeok itt <x id="INTERPOLATION" equiv-text="{{ country?.name }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-country/nodes-per-country.component.html</context>
|
||||
<context context-type="linenumber">3,4</context>
|
||||
@@ -6762,6 +6851,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ccabb31683868066778a1d664aa53ee9fcf77d6b" datatype="html">
|
||||
<source>How much liquidity is running on nodes advertising at least one clearnet IP address</source>
|
||||
<target>Mennyi likviditás fut a legalább egy clearnet IP-címet hirdető nódokon</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
|
||||
<context context-type="linenumber">8,9</context>
|
||||
@@ -6783,6 +6873,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="26fb07e8754b87bba4bf12c5137ffa77dac389a8" datatype="html">
|
||||
<source>How much liquidity is running on nodes which ISP was not identifiable</source>
|
||||
<target>Mennyi likviditás fut azon nódokon, amelyek internetszolgáltatója nem volt azonosítható</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
|
||||
<context context-type="linenumber">15,16</context>
|
||||
@@ -6804,6 +6895,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="23549ef4e1f846f06abcf07ceecb115945a0cf61" datatype="html">
|
||||
<source>How much liquidity is running on nodes advertising only Tor addresses</source>
|
||||
<target>Mennyi likviditás fut a csak Tor-címeket hirdető nódokon</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
|
||||
<context context-type="linenumber">22,23</context>
|
||||
@@ -6812,6 +6904,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="e008f2a76179fdcd7110b41ca624131f91075949" datatype="html">
|
||||
<source>Top 100 ISPs hosting LN nodes</source>
|
||||
<target>A 100 legjobb LN-nódot szolgáltató internetszolgáltató</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.html</context>
|
||||
<context context-type="linenumber">31,33</context>
|
||||
@@ -6863,6 +6956,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5735693498020397727" datatype="html">
|
||||
<source>Lightning nodes on ISP: <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>]</source>
|
||||
<target>Villám nódok az internetszolgáltatón: <x id="PH" equiv-text="response.isp"/> [MINT<x id="PH_1" equiv-text="this.route.snapshot.params.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">44</context>
|
||||
@@ -6874,6 +6968,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="d82f436f033a7d81680b8430275f94dda530151c" datatype="html">
|
||||
<source>Lightning nodes on ISP: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></source>
|
||||
<target>Villámnódok az internetszolgáltatón: <x id="INTERPOLATION" equiv-text="{{ isp?.name }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp/nodes-per-isp.component.html</context>
|
||||
<context context-type="linenumber">2,4</context>
|
||||
@@ -6900,6 +6995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5b727d251b06e9959cf24a90250a480d425339de" datatype="html">
|
||||
<source>Top 100 oldest lightning nodes</source>
|
||||
<target>100 legrégebbi lightning nodeok</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-ranking/oldest-nodes/oldest-nodes.component.html</context>
|
||||
<context context-type="linenumber">3,7</context>
|
||||
|
||||
@@ -3203,7 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi previsti</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi previsti</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3221,7 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi minati</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi minati</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3230,7 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocco estratto</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocco estratto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3239,7 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi rimanenti</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi rimanenti</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3248,7 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocco rimanente</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocco rimanente</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3257,7 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi avanti</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi avanti</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3266,7 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocco avanti</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocco avanti</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3275,7 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi dietro</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocchi dietro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3284,7 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> blocco dietro</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocco dietro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3995,7 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="i"/> blocchi</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> blocchi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4452,7 +4452,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2abc4d0d3ae0b49fa9e94a2efb8c2e1a47e680f4" datatype="html">
|
||||
<source>Go to "<x id="INTERPOLATION" equiv-text="{{ x }}"/>"</source>
|
||||
<target>Vai a &quot;<x id="INTERPOLATION" equiv-text="{{ x }}"/>&quot;</target>
|
||||
<target>Vai a "<x id="INTERPOLATION" equiv-text="{{ x }}"/>"</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -4518,7 +4518,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-since" datatype="html">
|
||||
<source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source>
|
||||
<target> <x id="DATE" equiv-text="dateStrings.i18nYear"/> fa</target>
|
||||
<target><x id="DATE" equiv-text="dateStrings.i18nYear"/> fa</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
@@ -5067,7 +5067,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ea7c261363dc5f6134b7bacba2a1ef97f4ff7859" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> rimanente</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> rimanente</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
<context context-type="linenumber">332,333</context>
|
||||
@@ -5578,7 +5578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="205c1b86ac1cc419c4d0cca51fdde418c4ffdc20" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> channels</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> canali</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> canali</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -6775,7 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target> <x id="PH" equiv-text="nodeCount"/> nodi</target>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> nodi</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">104,103</context>
|
||||
@@ -6795,7 +6795,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7032954508645880700" datatype="html">
|
||||
<source><x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> BTC capacity</source>
|
||||
<target> <x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> Capacità BTC</target>
|
||||
<target><x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> Capacità BTC</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">105,103</context>
|
||||
@@ -6913,7 +6913,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3627306100664959238" datatype="html">
|
||||
<source><x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</source>
|
||||
<target> <x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</target>
|
||||
<target><x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts</context>
|
||||
<context context-type="linenumber">159,157</context>
|
||||
@@ -7038,7 +7038,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.year" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> year</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> anno</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> anno</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -7046,7 +7046,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.years" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> years</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> anni</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> anni</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -7054,7 +7054,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.month" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> month</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> mese</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> mese</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
@@ -7062,7 +7062,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.months" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> months</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> mesi</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> mesi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -7070,7 +7070,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.week" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> week</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> settimana</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> settimana</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
@@ -7078,7 +7078,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.weeks" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> weeks</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> settimane</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> settimane</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
@@ -7086,7 +7086,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.day" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> day</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> giorno</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> giorno</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
@@ -7094,7 +7094,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.days" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> days</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> giorni</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> giorni</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
@@ -7102,7 +7102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hour" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hour</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> ora</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> ora</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
@@ -7110,7 +7110,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hours" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hours</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> ore</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> ore</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@@ -7118,7 +7118,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minute" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minute</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> minuto</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> minuto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -7126,7 +7126,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minutes" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minutes</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> minuti</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> minuti</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -7134,7 +7134,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.second" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> second</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> secondo</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> secondo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
@@ -7142,7 +7142,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.seconds" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> seconds</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> secondi</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> secondi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -348,7 +348,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="27387c2af5dcaf343a548feba821515f5dc00faa" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> transaction</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> sandoris</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> sandoris</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-address/bisq-address.component.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
@@ -373,7 +373,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="14779b0ce4cbc4d975a35a8fe074426228a324f3" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> transactions</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> sandoriai</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> sandoriai</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-address/bisq-address.component.html</context>
|
||||
<context context-type="linenumber">49</context>
|
||||
@@ -487,7 +487,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bisq-block.component.browser-title" datatype="html">
|
||||
<source>Block <x id="BLOCK_HEIGHT" equiv-text="block.height"/>: <x id="BLOCK_HASH" equiv-text="block.hash"/></source>
|
||||
<target>Blokas <x id="BLOCK_HEIGHT" equiv-text="block.height"/> : <x id="BLOCK_HASH" equiv-text="block.hash"/></target>
|
||||
<target>Blokas <x id="BLOCK_HEIGHT" equiv-text="block.height"/>: <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">89</context>
|
||||
@@ -1109,7 +1109,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8e623d3cfecb7c560c114390db53c1f430ffd0de" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> confirmation</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> patvirtinimas</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> patvirtinimas</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">20,21</context>
|
||||
@@ -1131,7 +1131,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5b0a2631f0b7bc71aaec6aa6f01af21f9a80d4" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> confirmations</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> patvirtinimai</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> patvirtinimai</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">21,22</context>
|
||||
@@ -1764,7 +1764,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c3360a933cb312b395d276a2b865214cf832df58" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ (transactions?.length | number) || '?' }}"/> of <x id="INTERPOLATION_1" equiv-text="{{ txCount | number }}"/> </source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ (transactions?.length | number) || '?' }}"/> iš <x id="INTERPOLATION_1" equiv-text="{{ txCount | number }}"/></target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ (transactions?.length | number) || '?' }}"/> iš <x id="INTERPOLATION_1" equiv-text="{{ txCount | number }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/asset/asset.component.html</context>
|
||||
<context context-type="linenumber">78</context>
|
||||
@@ -2616,7 +2616,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="block.component.browser-title" datatype="html">
|
||||
<source>Block <x id="BLOCK_HEIGHT" equiv-text="block.height"/>: <x id="BLOCK_ID" equiv-text="block.id"/></source>
|
||||
<target>Blokas <x id="BLOCK_HEIGHT" equiv-text="block.height"/> : <x id="BLOCK_ID" equiv-text="block.id"/></target>
|
||||
<target>Blokas <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/block-preview.component.ts</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
@@ -3113,7 +3113,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1bb6965f8e1bbe40c076528ffd841da86f57f119" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> blokai <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<target><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> blokai <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
|
||||
<context context-type="linenumber">10,11</context>
|
||||
@@ -3138,7 +3138,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b7ef3894d9b6f157c400ddc937c70c9881ecd896" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="<span class="shared-block">block</span></ng-template> </div>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>block<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="<span class="shared-block">block</span></ng-template> </div>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> blokas <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<target><x id="INTERPOLATION" equiv-text="<span class="shared-block">block</span></ng-template> </div>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> blokas <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
|
||||
<context context-type="linenumber">11,12</context>
|
||||
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target>Tikimasi <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokų</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target>Tikimasi <x id="INTERPOLATION" equiv-text="{{ i }}"/> bloko</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target>Rasti <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokai</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target>Rastas <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokas </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target>Liko <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokai</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target>Liko <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokas</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokai priekyje</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokas priekyje</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokai už</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokas už</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Vidutinis bloko laikas</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3984,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> blokai</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4003,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Kita (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4505,7 +4518,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-since" datatype="html">
|
||||
<source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source>
|
||||
<target> Prieš<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<target>Prieš<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
@@ -4565,6 +4578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-until" datatype="html">
|
||||
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
|
||||
<target>Už ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
@@ -5277,7 +5291,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0fa66b0c410bef320d3f370d7c98c51754b5f28f" datatype="html">
|
||||
<source>Overpaid <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/>x</source>
|
||||
<target>Permokėta <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/> x</target>
|
||||
<target>Permokėta <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/>x</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -5348,7 +5362,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html">
|
||||
<source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source>
|
||||
<target> <x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/> mempool.space teikia duomenis apie Bitkoino tinklą. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> Projektas negali padėti atgauti prarastų lėšų, greičiau patvirtinti operaciją ir pan.</target>
|
||||
<target><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/> mempool.space teikia duomenis apie Bitkoino tinklą. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> Projektas negali padėti atgauti prarastų lėšų, greičiau patvirtinti operaciją ir pan.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -5564,7 +5578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="205c1b86ac1cc419c4d0cca51fdde418c4ffdc20" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> channels</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> kanalai</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> kanalai</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -6761,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> mazgai</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">104,103</context>
|
||||
@@ -6780,7 +6795,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7032954508645880700" datatype="html">
|
||||
<source><x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> BTC capacity</source>
|
||||
<target> <x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> BTC talpumas</target>
|
||||
<target><x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> BTC talpumas</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">105,103</context>
|
||||
@@ -6898,7 +6913,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3627306100664959238" datatype="html">
|
||||
<source><x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</source>
|
||||
<target> <x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</target>
|
||||
<target><x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts</context>
|
||||
<context context-type="linenumber">159,157</context>
|
||||
@@ -7023,7 +7038,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.year" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> year</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> metai</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> metai</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -7031,7 +7046,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.years" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> years</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> metai</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> metai</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -7039,7 +7054,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.month" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> month</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> mėn</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> mėn</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
@@ -7047,7 +7062,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.months" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> months</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> mėn</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> mėn</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -7055,7 +7070,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.week" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> week</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> sav</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> sav</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
@@ -7063,7 +7078,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.weeks" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> weeks</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> sav</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> sav</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
@@ -7071,7 +7086,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.day" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> day</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> diena</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> diena</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
@@ -7079,7 +7094,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.days" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> days</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> dienos</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> dienų</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
@@ -7087,7 +7102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hour" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hour</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> val</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> val</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
@@ -7095,7 +7110,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hours" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hours</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> val</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> val</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@@ -7103,7 +7118,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minute" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minute</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> min</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> min</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -7111,7 +7126,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minutes" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minutes</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> min</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> min</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -7119,7 +7134,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.second" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> second</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> sek</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> sek</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
@@ -7127,7 +7142,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.seconds" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> seconds</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> sek</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> sek</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ngb.progressbar.value" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="* The maximal"/></source>
|
||||
<target><x id="INTERPOLATION" equiv-text="Максимумот"/></target>
|
||||
<target><x id="INTERPOLATION" equiv-text="* The maximal"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">node_modules/src/progressbar/progressbar.ts</context>
|
||||
<context context-type="linenumber">30,33</context>
|
||||
@@ -3995,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> блокови</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
|
||||
@@ -348,7 +348,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="27387c2af5dcaf343a548feba821515f5dc00faa" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> transaction</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> transaksjon</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> transaksjon</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-address/bisq-address.component.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
@@ -373,7 +373,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="14779b0ce4cbc4d975a35a8fe074426228a324f3" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> transactions</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> transaksjoner</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> transaksjoner</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-address/bisq-address.component.html</context>
|
||||
<context context-type="linenumber">49</context>
|
||||
@@ -487,7 +487,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bisq-block.component.browser-title" datatype="html">
|
||||
<source>Block <x id="BLOCK_HEIGHT" equiv-text="block.height"/>: <x id="BLOCK_HASH" equiv-text="block.hash"/></source>
|
||||
<target>Blokk <x id="BLOCK_HEIGHT" equiv-text="block.height"/> : <x id="BLOCK_HASH" equiv-text="block.hash"/></target>
|
||||
<target>Blokk <x id="BLOCK_HEIGHT" equiv-text="block.height"/>: <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">89</context>
|
||||
@@ -842,7 +842,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="74d80a5b284beb81e8aeb3b8efca0f78cd4b7560" datatype="html">
|
||||
<source>Amount (<x id="INTERPOLATION" equiv-text="{{ i }}"/>)</source>
|
||||
<target>Beløp ( <x id="INTERPOLATION" equiv-text="{{ i }}"/> )</target>
|
||||
<target>Beløp (<x id="INTERPOLATION" equiv-text="{{ i }}"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-market/bisq-market.component.html</context>
|
||||
<context context-type="linenumber">112,113</context>
|
||||
@@ -1109,7 +1109,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8e623d3cfecb7c560c114390db53c1f430ffd0de" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> confirmation</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> bekreftelse</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> bekreftelse</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">20,21</context>
|
||||
@@ -1131,7 +1131,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5b0a2631f0b7bc71aaec6aa6f01af21f9a80d4" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> confirmations</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> bekreftelser</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> bekreftelser</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">21,22</context>
|
||||
@@ -2616,7 +2616,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="block.component.browser-title" datatype="html">
|
||||
<source>Block <x id="BLOCK_HEIGHT" equiv-text="block.height"/>: <x id="BLOCK_ID" equiv-text="block.id"/></source>
|
||||
<target>Blokk <x id="BLOCK_HEIGHT" equiv-text="block.height"/> : <x id="BLOCK_ID" equiv-text="block.id"/></target>
|
||||
<target>Blokk <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/block-preview.component.ts</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker forventet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk forventet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker utvunnet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk utvunnet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker gjenstår</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk gjenstår</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker foran</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk foran</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokker bak</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokk bak</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Gjennomsnittlig blokktid</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3764,7 +3775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="26e78cd052d05a0c1a7db43fac8df52ec6950672" datatype="html">
|
||||
<source>Reward stats</source>
|
||||
<target>Belonnings-statistikk</target>
|
||||
<target>Belønnings-statistikk</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/mining-dashboard/mining-dashboard.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
@@ -3839,7 +3850,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ea1a87734b5cc78ea8b268343497d92136855cd1" datatype="html">
|
||||
<source>Pools luck</source>
|
||||
<target>Utvinningsgrupper flaks</target>
|
||||
<target>Flaks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">9,11</context>
|
||||
@@ -3866,7 +3877,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1107f1b39cd8474087d438971892967a331a6c7d" datatype="html">
|
||||
<source>Pools count</source>
|
||||
<target>Antall utvinningsgrupper</target>
|
||||
<target>Antall grupper</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.html</context>
|
||||
<context context-type="linenumber">17,19</context>
|
||||
@@ -3984,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> blokker</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4003,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Annet (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4281,7 +4294,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1d9f405ab98a5f79d98b439de29fc8baca46b97c" datatype="html">
|
||||
<source>Avg Block Fees</source>
|
||||
<target>Gjennomsnittlig blokkavgift</target>
|
||||
<target>Gj.sn. blokkavgift</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/reward-stats/reward-stats.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
@@ -4505,7 +4518,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-since" datatype="html">
|
||||
<source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source>
|
||||
<target> <x id="DATE" equiv-text="dateStrings.i18nYear"/> siden</target>
|
||||
<target><x id="DATE" equiv-text="dateStrings.i18nYear"/> siden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
@@ -4565,6 +4578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-until" datatype="html">
|
||||
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
|
||||
<target>Om ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
@@ -5053,7 +5067,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ea7c261363dc5f6134b7bacba2a1ef97f4ff7859" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> gjenstår</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> gjenstår</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
<context context-type="linenumber">332,333</context>
|
||||
@@ -5106,7 +5120,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="25d58cd5c18fd9c1c89d6062d67dcc2482161410" datatype="html">
|
||||
<source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using native SegWit</source>
|
||||
<target>Denne transaksjonen sparte <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/> % på avgifter ved å bruke native SegWit</target>
|
||||
<target>Denne transaksjonen sparte <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% på avgifter ved å bruke native SegWit</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -5133,7 +5147,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b6a3f6afdac6873e2d261647d834c02c91376893" datatype="html">
|
||||
<source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using SegWit and could save <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% more by fully upgrading to native SegWit</source>
|
||||
<target>Denne transaksjonen sparte <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/> % på avgifter ved å bruke SegWit og kunne spart <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/> % mer ved å fullstendig oppgradere til native SegWit</target>
|
||||
<target>Denne transaksjonen sparte <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% på avgifter ved å bruke SegWit og kunne spart <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% mer ved å fullstendig oppgradere til native SegWit</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -5142,7 +5156,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a67530e246368aa7e5d010061fd84c3c4fe755c2" datatype="html">
|
||||
<source>This transaction could save <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% on fees by upgrading to native SegWit or <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/>% by upgrading to SegWit-P2SH</source>
|
||||
<target>Denne transaksjonen kan spare <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/> % på avgifter ved å oppgradere til native SegWit eller <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/> % ved å oppgradere til SegWit-P2SH</target>
|
||||
<target>Denne transaksjonen kan spare <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% på avgifter ved å oppgradere til native SegWit eller <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/>% ved å oppgradere til SegWit-P2SH</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -5151,7 +5165,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="17e9c05e053cbd29d3835d8ecb19508d0f07241b" datatype="html">
|
||||
<source>This transaction uses Taproot and thereby saved at least <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% on fees</source>
|
||||
<target>Denne transaksjonen bruker Taproot og sparer dermed minst <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/> % på avgifter</target>
|
||||
<target>Denne transaksjonen bruker Taproot og sparer dermed minst <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% på avgifter</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@@ -5186,7 +5200,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="47b821c7df420c96de0b22844a88c04d52628540" datatype="html">
|
||||
<source>This transaction uses Taproot and already saved at least <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% on fees, but could save an additional <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% by fully using Taproot</source>
|
||||
<target>Denne transaksjonen bruker Taproot og har allerede spart minst <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/> % på avgifter, men kan spare ytterligere <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/> % ved å bruke Taproot fullt ut</target>
|
||||
<target>Denne transaksjonen bruker Taproot og har allerede spart minst <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedTaprootGains * 100 | number: '1.0-0' }}"/>% på avgifter, men kan spare ytterligere <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% ved å bruke Taproot fullt ut</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -5195,7 +5209,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="aa31fc4d29f35b2fd36080bb6ff84be8eaab66fd" datatype="html">
|
||||
<source>This transaction could save <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% on fees by using Taproot</source>
|
||||
<target>Denne transaksjonen kunne spart <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/> % på avgifter ved å bruke Taproot</target>
|
||||
<target>Denne transaksjonen kunne spart <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialTaprootGains * 100 | number: '1.0-0' }}"/>% på avgifter ved å bruke Taproot</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
@@ -5264,7 +5278,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="60601e02e7c1f6c4dbabd0ef0bb8946003db8dec" datatype="html">
|
||||
<source>Only ~<x id="INTERPOLATION" equiv-text="{{ medianFeeNeeded | feeRounding }}"/> sat/vB was needed to get into this block</source>
|
||||
<target>Bare ~ <x id="INTERPOLATION" equiv-text="{{ medianFeeNeeded | feeRounding }}"/> sat/vB var nødvendig for å komme inn i denne blokken</target>
|
||||
<target>Bare ~<x id="INTERPOLATION" equiv-text="{{ medianFeeNeeded | feeRounding }}"/> sat/vB var nødvendig for å komme inn i denne blokken</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -5277,7 +5291,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0fa66b0c410bef320d3f370d7c98c51754b5f28f" datatype="html">
|
||||
<source>Overpaid <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/>x</source>
|
||||
<target>Overbetalt <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/> x</target>
|
||||
<target>Overbetalt <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/>x</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -5348,7 +5362,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html">
|
||||
<source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source>
|
||||
<target> <x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/> mempool.space gir bare data om Bitcoin-nettverket. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> Den kan ikke hjelpe deg med å hente verdier, bekrefte transaksjonen raskere osv.</target>
|
||||
<target><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/> mempool.space gir bare data om Bitcoin-nettverket. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> Den kan ikke hjelpe deg med å hente verdier, bekrefte transaksjonen raskere osv.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -5564,7 +5578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="205c1b86ac1cc419c4d0cca51fdde418c4ffdc20" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> channels</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> kanaler</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> kanaler</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -6761,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> noder</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">104,103</context>
|
||||
@@ -6780,7 +6795,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7032954508645880700" datatype="html">
|
||||
<source><x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> BTC capacity</source>
|
||||
<target> <x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> BTC-kapasitet</target>
|
||||
<target><x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> BTC-kapasitet</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">105,103</context>
|
||||
@@ -6898,7 +6913,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3627306100664959238" datatype="html">
|
||||
<source><x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</source>
|
||||
<target> <x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</target>
|
||||
<target><x id="PH" equiv-text="this.amountShortenerPipe.transform(isp[2] / 100000000, 2)"/> BTC</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-isp-chart/nodes-per-isp-chart.component.ts</context>
|
||||
<context context-type="linenumber">159,157</context>
|
||||
@@ -6941,7 +6956,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5735693498020397727" datatype="html">
|
||||
<source>Lightning nodes on ISP: <x id="PH" equiv-text="response.isp"/> [AS<x id="PH_1" equiv-text="this.route.snapshot.params.isp"/>]</source>
|
||||
<target>Lightning-noder på ISP: <x id="PH" equiv-text="response.isp"/> [AS <x id="PH_1" equiv-text="this.route.snapshot.params.isp"/> ]</target>
|
||||
<target>Lightning-noder på ISP: <x id="PH" equiv-text="response.isp"/> [AS <x id="PH_1" equiv-text="this.route.snapshot.params.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">44</context>
|
||||
@@ -7023,7 +7038,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.year" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> year</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> år</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> år</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -7031,7 +7046,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.years" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> years</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> år</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> år</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -7039,7 +7054,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.month" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> month</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> måned</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> måned</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
@@ -7047,7 +7062,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.months" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> months</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> måneder</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> måneder</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -7055,7 +7070,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.week" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> week</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> uke</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> uke</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
@@ -7063,7 +7078,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.weeks" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> weeks</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> uker</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> uker</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
@@ -7071,7 +7086,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.day" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> day</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> dag</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> dag</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
@@ -7079,7 +7094,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.days" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> days</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> dager</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> dager</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
@@ -7087,7 +7102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hour" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hour</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> time</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> time</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
@@ -7095,7 +7110,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hours" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hours</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> timer</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> timer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@@ -7103,7 +7118,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minute" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minute</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> minutt</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> minutt</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -7111,7 +7126,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minutes" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minutes</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> minutter</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> minutter</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -7119,7 +7134,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.second" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> second</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> sekund</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> sekund</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
@@ -7127,7 +7142,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.seconds" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> seconds</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> sekunder</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> sekunder</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
|
||||
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken verwacht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok verwacht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken gemined</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok gemined</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target>Nog <x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken over </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target>Nog <x id="INTERPOLATION" equiv-text="{{ i }}"/> blok over</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken verder</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok verder</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blokken achter</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok achter</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Gemiddelde bloktijd</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3984,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> blokken</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4003,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Ander (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -6713,6 +6726,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="599038141003770125" datatype="html">
|
||||
<source>Clearnet and Darknet</source>
|
||||
<target>Clearnet en Darknet</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">164,161</context>
|
||||
@@ -6724,6 +6738,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1282458597026430784" datatype="html">
|
||||
<source>Clearnet Only (IPv4, IPv6)</source>
|
||||
<target>Alleen Clearnet (IPv4, IPv6)</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">185,182</context>
|
||||
@@ -6735,6 +6750,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2165336009914523952" datatype="html">
|
||||
<source>Darknet Only (Tor, I2P, cjdns)</source>
|
||||
<target>Alleen Darknet (Tor, I2P, cjdns)</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">206,203</context>
|
||||
@@ -6759,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> nodes</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">104,103</context>
|
||||
|
||||
@@ -3995,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> blocos</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4014,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Outras (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -6773,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> nós</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">104,103</context>
|
||||
|
||||
@@ -991,7 +991,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="dfc2fb58e2a04ed944a4bd80f0a2087775134068" datatype="html">
|
||||
<source>Amount</source>
|
||||
<target>Cantitatea</target>
|
||||
<target>Cantitate</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-trades/bisq-trades.component.html</context>
|
||||
<context context-type="linenumber">9,12</context>
|
||||
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri așteptate</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc așteptat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri minate</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc minat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri rămase</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc rămas</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri înainte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc înainte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocuri în urmă</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> bloc în urmă</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Timpul mediu al blocurilor</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3984,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> blocuri</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4003,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Altele (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -5349,7 +5362,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8f2791f5d9656271dd6c385f5ad572716e90f4a2" datatype="html">
|
||||
<source><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/>mempool.space merely provides data about the Bitcoin network.<x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> It cannot help you with retrieving funds, confirming your transaction quicker, etc.</source>
|
||||
<target> <x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/> mempool.space oferă doar date despre rețeaua Bitcoin. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> Nu vă poate ajuta să recuperați fonduri, să confirmați tranzacția mai rapid etc.</target>
|
||||
<target><x id="START_BOLD_TEXT" ctype="x-b" equiv-text="mempool.space merely provides data about the Bitcoin network.</b> It cannot help you with"/> mempool.space oferă doar date despre rețeaua Bitcoin. <x id="CLOSE_BOLD_TEXT" ctype="x-b" equiv-text="</b>"/> Nu vă poate ajuta să recuperați fonduri, să confirmați tranzacția mai rapid etc.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/docs/api-docs/api-docs.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -6713,6 +6726,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="599038141003770125" datatype="html">
|
||||
<source>Clearnet and Darknet</source>
|
||||
<target>Clearnet și Darknet</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">164,161</context>
|
||||
@@ -6724,6 +6738,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1282458597026430784" datatype="html">
|
||||
<source>Clearnet Only (IPv4, IPv6)</source>
|
||||
<target>Numai Clearnet (IPv4, IPv6)</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">185,182</context>
|
||||
@@ -6735,6 +6750,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2165336009914523952" datatype="html">
|
||||
<source>Darknet Only (Tor, I2P, cjdns)</source>
|
||||
<target>Numai Darknet (Tor, I2P, cjdns)</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">206,203</context>
|
||||
@@ -6746,7 +6762,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0bd8b27f60a1f098a53e06328426d818e3508ff9" datatype="html">
|
||||
<source>Share</source>
|
||||
<target>Partajează</target>
|
||||
<target>Parte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/nodes-per-country-chart/nodes-per-country-chart.component.html</context>
|
||||
<context context-type="linenumber">29,31</context>
|
||||
@@ -6759,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> noduri</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">104,103</context>
|
||||
|
||||
@@ -348,7 +348,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="27387c2af5dcaf343a548feba821515f5dc00faa" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> transaction</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> транзакция</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> транзакция</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-address/bisq-address.component.html</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
@@ -373,7 +373,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="14779b0ce4cbc4d975a35a8fe074426228a324f3" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> transactions</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> транзакции(й)</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> транзакции(й)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-address/bisq-address.component.html</context>
|
||||
<context context-type="linenumber">49</context>
|
||||
@@ -1109,7 +1109,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8e623d3cfecb7c560c114390db53c1f430ffd0de" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> confirmation</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> подтверждение</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="confirmation</ng-template> <ng-template #confirmationPlural let-i i18n="shared.confirmation-count.plural|Transaction plural confir"/> подтверждение</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">20,21</context>
|
||||
@@ -1131,7 +1131,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5b0a2631f0b7bc71aaec6aa6f01af21f9a80d4" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> confirmations</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> подтверждения(й)</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="confirmations</ng-template> </button> </div> </div> <div class="clearfix"></div> <div class="box tran"/> подтверждения(й)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/bisq/bisq-transaction/bisq-transaction.component.html</context>
|
||||
<context context-type="linenumber">21,22</context>
|
||||
@@ -1764,7 +1764,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="c3360a933cb312b395d276a2b865214cf832df58" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ (transactions?.length | number) || '?' }}"/> of <x id="INTERPOLATION_1" equiv-text="{{ txCount | number }}"/> </source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ (transactions?.length | number) || '?' }}"/> из <x id="INTERPOLATION_1" equiv-text="{{ txCount | number }}"/></target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ (transactions?.length | number) || '?' }}"/> из <x id="INTERPOLATION_1" equiv-text="{{ txCount | number }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/asset/asset.component.html</context>
|
||||
<context context-type="linenumber">78</context>
|
||||
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блоков добавлено</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блок добавлен</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блоков намайнено</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блок намайнен</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блоков осталось</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блок остался</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блоков ожидает</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блок ожидает</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блоков позади</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> блок позади</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Среднее время блока</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3984,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> блоков</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4003,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Другое ( <x id="PH" equiv-text="percentage"/> )</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4505,7 +4518,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-since" datatype="html">
|
||||
<source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source>
|
||||
<target> <x id="DATE" equiv-text="dateStrings.i18nYear"/> назад</target>
|
||||
<target><x id="DATE" equiv-text="dateStrings.i18nYear"/> назад</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
@@ -4565,6 +4578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-until" datatype="html">
|
||||
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
|
||||
<target>Через ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
@@ -5053,7 +5067,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ea7c261363dc5f6134b7bacba2a1ef97f4ff7859" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> осталось</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> осталось</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
<context context-type="linenumber">332,333</context>
|
||||
@@ -5106,7 +5120,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="25d58cd5c18fd9c1c89d6062d67dcc2482161410" datatype="html">
|
||||
<source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using native SegWit</source>
|
||||
<target>Эта транзакция сэкономила <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/> % на комиссиях за счет использования нативного SegWit.</target>
|
||||
<target>Эта транзакция сэкономила <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% на комиссиях за счет использования нативного SegWit.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -5133,7 +5147,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b6a3f6afdac6873e2d261647d834c02c91376893" datatype="html">
|
||||
<source>This transaction saved <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% on fees by using SegWit and could save <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% more by fully upgrading to native SegWit</source>
|
||||
<target>Эта транзакция сэкономила <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/> % на комиссиях за счет использования SegWit и может сэкономить еще <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/> % за счет полного перехода на нативный SegWit.</target>
|
||||
<target>Эта транзакция сэкономила <x id="INTERPOLATION" equiv-text="{{ segwitGains.realizedSegwitGains * 100 | number: '1.0-0' }}"/>% на комиссиях за счет использования SegWit и может сэкономить еще <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% за счет полного перехода на нативный SegWit.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -5142,7 +5156,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="a67530e246368aa7e5d010061fd84c3c4fe755c2" datatype="html">
|
||||
<source>This transaction could save <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% on fees by upgrading to native SegWit or <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/>% by upgrading to SegWit-P2SH</source>
|
||||
<target>Эта транзакция могла сэкономить <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/> % на комиссиях за счет перехода на нативный SegWit или <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/> % за счет обновления до SegWit-P2SH.</target>
|
||||
<target>Эта транзакция могла сэкономить <x id="INTERPOLATION" equiv-text="{{ segwitGains.potentialSegwitGains * 100 | number : '1.0-0' }}"/>% на комиссиях за счет перехода на нативный SegWit или <x id="INTERPOLATION_1" equiv-text="{{ segwitGains.potentialP2shSegwitGains * 100 | number: '1.0-0' }}"/>% за счет обновления до SegWit-P2SH.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-features/tx-features.component.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -5264,7 +5278,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="60601e02e7c1f6c4dbabd0ef0bb8946003db8dec" datatype="html">
|
||||
<source>Only ~<x id="INTERPOLATION" equiv-text="{{ medianFeeNeeded | feeRounding }}"/> sat/vB was needed to get into this block</source>
|
||||
<target>Чтобы попасть в этот блок, необходимо всего ~ <x id="INTERPOLATION" equiv-text="{{ medianFeeNeeded | feeRounding }}"/> sat / vB</target>
|
||||
<target>Чтобы попасть в этот блок, необходимо всего ~<x id="INTERPOLATION" equiv-text="{{ medianFeeNeeded | feeRounding }}"/> sat/vB</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -5277,7 +5291,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0fa66b0c410bef320d3f370d7c98c51754b5f28f" datatype="html">
|
||||
<source>Overpaid <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/>x</source>
|
||||
<target>Переплачено <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/> x</target>
|
||||
<target>Переплачено <x id="INTERPOLATION" equiv-text="{{ overpaidTimes }}"/>x</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/tx-fee-rating/tx-fee-rating.component.html</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
@@ -5564,7 +5578,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="205c1b86ac1cc419c4d0cca51fdde418c4ffdc20" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> channels</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> каналов</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> каналов</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -5743,7 +5757,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="8fd0077b032e360ece45c4fd655f85b2400dcb83" datatype="html">
|
||||
<source>ppm</source>
|
||||
<target>частей на миллион</target>
|
||||
<target>ppm</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-preview.component.html</context>
|
||||
<context context-type="linenumber">34,35</context>
|
||||
@@ -6052,7 +6066,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="db1f0c0605ab0c4a904523635982253ff72eed40" datatype="html">
|
||||
<source>The average fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm</source>
|
||||
<target>Средняя комиссия, взимаемая узлами маршрутизации, без учета ставок комиссии > 0,5% или 5000 ppm.</target>
|
||||
<target>Средняя комиссия, взимаемая узлами маршрутизации, без учета ставок комиссии >0,5% или 5000 частей на миллион.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">28,30</context>
|
||||
@@ -6074,7 +6088,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0a46218f4a7b17b6445460898d75ab78e7e7979b" datatype="html">
|
||||
<source>The average base fee charged by routing nodes, ignoring base fees > 5000ppm</source>
|
||||
<target>Средняя базовая комиссия, взимаемая узлами маршрутизации, без учета базовых комиссий > 5000 ppm</target>
|
||||
<target>Средняя базовая комиссия, взимаемая узлами маршрутизации, без учета базовых комиссий > 5000 частей на миллион</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">43,45</context>
|
||||
@@ -6101,7 +6115,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="cb4dae32e1b4d6a2ba6287d9f7bd859ca7259468" datatype="html">
|
||||
<source>The median fee rate charged by routing nodes, ignoring fee rates > 0.5% or 5000ppm</source>
|
||||
<target>Медианная комиссия, взимаемая узлами маршрутизации, без учета ставок комиссии > 0,5% или 5000 ppm.</target>
|
||||
<target>Медианная комиссия, взимаемая узлами маршрутизации, без учета ставок комиссии > 0,5% или 5000 частей на миллион.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">74,76</context>
|
||||
@@ -6119,7 +6133,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b8539025268617abfcab1c3f2a2c60cd8d7485fb" datatype="html">
|
||||
<source>The median base fee charged by routing nodes, ignoring base fees > 5000ppm</source>
|
||||
<target>Медианная базовая комиссия, взимаемая узлами маршрутизации, без учета базовых комиссий > 5000 ppm</target>
|
||||
<target>Медианная базовая комиссия, взимаемая узлами маршрутизации, без учета базовых комиссий > 5000 частей на миллион</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channels-statistics/channels-statistics.component.html</context>
|
||||
<context context-type="linenumber">89,91</context>
|
||||
@@ -6712,6 +6726,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="599038141003770125" datatype="html">
|
||||
<source>Clearnet and Darknet</source>
|
||||
<target>Clearnet и Darknet</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">164,161</context>
|
||||
@@ -6723,6 +6738,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1282458597026430784" datatype="html">
|
||||
<source>Clearnet Only (IPv4, IPv6)</source>
|
||||
<target>Только Clearnet (IPv4, IPv6)</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">185,182</context>
|
||||
@@ -6734,6 +6750,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2165336009914523952" datatype="html">
|
||||
<source>Darknet Only (Tor, I2P, cjdns)</source>
|
||||
<target>Только Darknet (Tor, I2P, cjdns)</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">206,203</context>
|
||||
@@ -6758,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> узлов</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">104,103</context>
|
||||
@@ -7020,7 +7038,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.year" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> year</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> год</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> год</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -7028,7 +7046,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.years" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> years</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> лет</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> лет</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -7036,7 +7054,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.month" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> month</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> месяц</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> месяц</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
@@ -7044,7 +7062,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.months" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> months</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> месяцев</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> месяцев</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -7052,7 +7070,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.week" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> week</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> неделя</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> неделю</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
@@ -7060,7 +7078,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.weeks" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> weeks</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> недель</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> недели</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
@@ -7068,7 +7086,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.day" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> day</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> дней</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> дней</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
@@ -7076,7 +7094,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.days" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> days</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> дней</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> дней</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
@@ -7084,7 +7102,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hour" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hour</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> час</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> час</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
@@ -7092,7 +7110,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hours" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hours</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> часов</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> часов</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@@ -7100,7 +7118,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minute" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minute</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> минута</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> минута</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -7108,7 +7126,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.minutes" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> minutes</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> минут</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> минут</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -7116,7 +7134,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.second" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> second</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> секунда</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> секунда</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
@@ -7124,7 +7142,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.seconds" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> seconds</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> секунд</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> секунд</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3203,6 +3203,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="0c65c3ee0ce537e507e0b053b479012e5803d2cf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks expected</source>
|
||||
<target>beklenen blok: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
@@ -3211,6 +3212,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ec9f27d00a7778cd1cfe1806105d2ca3314fa506" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block expected</source>
|
||||
<target>beklenen blok: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
@@ -3219,6 +3221,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b89cb92adf0a831d4a263ecdba02139abbda02ae" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks mined</source>
|
||||
<target>kazılan bloklar: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
@@ -3227,6 +3230,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f7e823fd45c6def13a3f15f678888c7fe254fa5" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block mined</source>
|
||||
<target>kazılan bloklar: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@@ -3235,6 +3239,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="229dfb17b342aa8b9a1db27557069445ea1a7051" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks remaining</source>
|
||||
<target>kalan bloklar: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
@@ -3243,6 +3248,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="13ff0d092caf85cd23815f0235e316dc3a6d1bbe" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block remaining</source>
|
||||
<target>kalan bloklar: <x id="INTERPOLATION" equiv-text="{{ i }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
@@ -3251,6 +3257,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="4f78348af343fb64016891d67b53bdab473f9dbf" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok önde</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
@@ -3259,6 +3266,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="15c5f3475966bf3be381378b046a65849f0f6bb6" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block ahead</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok önde</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
@@ -3267,6 +3275,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="697b8cb1caaf1729809bc5c065d4dd873810550a" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> blocks behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok geride</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
@@ -3275,6 +3284,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="32137887e3f5a25b3a016eb03357f4e363fccb0b" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> block behind</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> blok geride</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty-tooltip.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
@@ -3283,6 +3293,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Ortalama blok zamanı</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3984,6 +3995,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> bloklar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4003,6 +4015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Diğer (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4439,7 +4452,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2abc4d0d3ae0b49fa9e94a2efb8c2e1a47e680f4" datatype="html">
|
||||
<source>Go to "<x id="INTERPOLATION" equiv-text="{{ x }}"/>"</source>
|
||||
<target>"<x id="INTERPOLATION" equiv-text="{{ x }}"/>" 'a git;</target>
|
||||
<target>"<x id="INTERPOLATION" equiv-text="{{ x }}"/>" 'e git</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/search-form/search-results/search-results.component.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
@@ -4505,7 +4518,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-since" datatype="html">
|
||||
<source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source>
|
||||
<target><x id="DATE" equiv-text="dateStrings.i18nYear"/>önce</target>
|
||||
<target><x id="DATE" equiv-text="dateStrings.i18nYear"/> önce</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
@@ -6762,6 +6775,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target><x id="PH" equiv-text="nodeCount"/> düğüm</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">104,103</context>
|
||||
|
||||
@@ -3113,7 +3113,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1bb6965f8e1bbe40c076528ffd841da86f57f119" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>blocks<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> khối <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<target><x id="INTERPOLATION" equiv-text="<span class="shared-block">blocks</span></ng-template> <ng-template"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> khối <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
|
||||
<context context-type="linenumber">10,11</context>
|
||||
@@ -3138,7 +3138,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="b7ef3894d9b6f157c400ddc937c70c9881ecd896" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="<span class="shared-block">block</span></ng-template> </div>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/>block<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="<span class="shared-block">block</span></ng-template> </div>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> khối <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<target><x id="INTERPOLATION" equiv-text="<span class="shared-block">block</span></ng-template> </div>"/> <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span class="shared-block">"/> khối <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty-mining/difficulty-mining.component.html</context>
|
||||
<context context-type="linenumber">11,12</context>
|
||||
@@ -3283,6 +3283,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5e78899c9b98f29856ce3c7c265e1344bc7a5a18" datatype="html">
|
||||
<source>Average block time</source>
|
||||
<target>Thời gian khối trung bình</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/difficulty/difficulty.component.html</context>
|
||||
<context context-type="linenumber">42,45</context>
|
||||
@@ -3984,6 +3985,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="312539377512157124" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="i"/> blocks</source>
|
||||
<target><x id="INTERPOLATION" equiv-text="i"/> khối</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">165,163</context>
|
||||
@@ -4003,6 +4005,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="3666195172774554282" datatype="html">
|
||||
<source>Other (<x id="PH" equiv-text="percentage"/>)</source>
|
||||
<target>Khác (<x id="PH" equiv-text="percentage"/>)</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/pool-ranking/pool-ranking.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
@@ -4505,7 +4508,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-since" datatype="html">
|
||||
<source><x id="DATE" equiv-text="dateStrings.i18nYear"/> ago</source>
|
||||
<target> <x id="DATE" equiv-text="dateStrings.i18nYear"/> trước</target>
|
||||
<target><x id="DATE" equiv-text="dateStrings.i18nYear"/> trước</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
@@ -4565,6 +4568,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="time-until" datatype="html">
|
||||
<source>In ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></source>
|
||||
<target>Trong ~<x id="DATE" equiv-text="dateStrings.i18nYear"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/time/time.component.ts</context>
|
||||
<context context-type="linenumber">126</context>
|
||||
@@ -5053,7 +5057,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="ea7c261363dc5f6134b7bacba2a1ef97f4ff7859" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> remaining</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> còn lại</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="remaining</ng-template>"/> còn lại</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/components/transactions-list/transactions-list.component.html</context>
|
||||
<context context-type="linenumber">332,333</context>
|
||||
@@ -5564,7 +5568,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="205c1b86ac1cc419c4d0cca51fdde418c4ffdc20" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{ i }}"/> channels</source>
|
||||
<target> <x id="INTERPOLATION" equiv-text="{{ i }}"/> kênh</target>
|
||||
<target><x id="INTERPOLATION" equiv-text="{{ i }}"/> kênh</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/lightning/channel/channel-box/channel-box.component.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
@@ -6712,6 +6716,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="599038141003770125" datatype="html">
|
||||
<source>Clearnet and Darknet</source>
|
||||
<target>Clearnet và Darknet</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">164,161</context>
|
||||
@@ -6723,6 +6728,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="1282458597026430784" datatype="html">
|
||||
<source>Clearnet Only (IPv4, IPv6)</source>
|
||||
<target>Chỉ Clearnet (IPv4, IPv6)</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">185,182</context>
|
||||
@@ -6734,6 +6740,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2165336009914523952" datatype="html">
|
||||
<source>Darknet Only (Tor, I2P, cjdns)</source>
|
||||
<target>Chỉ Darknet (Tor, I2P, cjdns)</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">206,203</context>
|
||||
@@ -6758,6 +6765,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="5222540403093176126" datatype="html">
|
||||
<source><x id="PH" equiv-text="nodeCount"/> nodes</source>
|
||||
<target>nút <x id="PH" equiv-text="nodeCount"/></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">104,103</context>
|
||||
@@ -6777,7 +6785,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7032954508645880700" datatype="html">
|
||||
<source><x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> BTC capacity</source>
|
||||
<target> <x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> công suất BTC</target>
|
||||
<target><x id="PH" equiv-text="this.amountShortenerPipe.transform(country.capacity / 100000000, 2)"/> công suất BTC</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">105,103</context>
|
||||
@@ -7020,7 +7028,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.year" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> year</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> năm</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> năm</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">3</context>
|
||||
@@ -7028,7 +7036,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.years" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> years</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> năm</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> năm</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">4</context>
|
||||
@@ -7036,7 +7044,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.month" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> month</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> tháng</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> tháng</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">5</context>
|
||||
@@ -7044,7 +7052,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.months" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> months</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> tháng</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> tháng</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
@@ -7052,7 +7060,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.week" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> week</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> tuần</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> tuần</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">7</context>
|
||||
@@ -7060,7 +7068,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.weeks" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> weeks</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> tuần</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> tuần</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">8</context>
|
||||
@@ -7068,7 +7076,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.day" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> day</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> ngày</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> ngày</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
@@ -7076,7 +7084,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.days" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> days</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> ngày</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> ngày</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
@@ -7084,7 +7092,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hour" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hour</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> giờ</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> giờ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
@@ -7092,7 +7100,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="date-base.hours" datatype="html">
|
||||
<source><x id="DATE" equiv-text="counter"/> hours</source>
|
||||
<target> <x id="DATE" equiv-text="counter"/> giờ</target>
|
||||
<target><x id="DATE" equiv-text="counter"/> giờ</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">src/app/shared/i18n/dates.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user